我已经搜索过,但找不到任何有效的方法……我希望有人可以帮助我。

我正在尝试获取一个元组并将其更改为有序的字典:

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)])

09-25 16:20
查看更多