我已经搜索过,但找不到任何有效的方法……我希望有人可以帮助我。
我正在尝试获取一个元组并将其更改为有序的字典:
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}
附言如果您认为自己知道有什么可以帮助我的,请回答。
最佳答案
您可以先对列表进行排序。这将根据每个项目的(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)])