我已经搜索了但我找不到任何可行的东西......我希望有人可以帮助我。
我正在尝试获取一个元组并将其更改为有序的字典:
mylist = [(5, 3), (1, 4), (1, 7), (12, 7), (8, 3), (12, 4), (12, 5)]
并将其更改为:
myorderedlist = [(1, 7), (1, 4), (5, 3), (8, 3), (12, 7), (12, 5), (12, 4)]
然后(我需要它来摆脱较小的值):
mydic = {1:7, 5:3, 8:3, 12:7}
总的来说,我想把mylist = [(5, 3), (1, 4), (1, 7), (12, 7), (8, 3), (12, 4), (12, 5)]
变成mydic = {1:7, 5:3, 8:3, 12:7}
聚苯乙烯。如果你认为你知道一些可以帮助我的事情,请把它作为答案。
答案 0 :(得分:3)
您可以先排序列表。这将根据每个项目的(x, y)
值重新排列列表。具有相同x
值的项目将按其y
值进行排序。
然后您可以将其转换为OrderedDict
并保持排序顺序而不会感到痛苦。
from collections import OrderedDict
mylist = [(5, 3), (1, 4), (1, 7), (12, 7), (8, 3), (12, 4), (12, 5)]
mylist.sort()
print mylist
mydict = OrderedDict()
mydict.update(mylist)
print mydict
输出:
[(1, 4), (1, 7), (5, 3), (8, 3), (12, 4), (12, 5), (12, 7)]
OrderedDict([(1, 7), (5, 3), (8, 3), (12, 7)])
答案 1 :(得分:0)
这也有效。
DateTime.Now.ToString("yyyy-MM-dd")
答案 2 :(得分:0)
尝试这样的事情
>>> mylist = [(5, 3), (1, 4), (1, 7), (12, 7), (8, 3), (12, 4), (12, 5)]
>>> smaller = 2 # for example
>>> mydic = {k:v for k,v in mylist if v > smaller}
>>> mydic
{8: 3, 1: 7, 12: 5, 5: 3}
>>>
请注意,如果在元组中重复某个键,则会替换前一个键。