在Python字典中按两个值排列项目

时间:2017-12-04 17:00:26

标签: python sorting dictionary items

我最近练习python。几天后我的剧本停了下来,因为我在一个问题上挣扎。 我想按两个共同的值对项目进行排序。像一条链子。你可以看到更低的。

我有什么:

dic= {'A': [62, 17], 'B': [59, 60], 'C': [60, 61], 'D': [57, 58], 'E': [61, 62], 'F': [58, 59]}

我想要的是什么:

dic={'A': [62, 17], 'E': [31, 62],'C': [60, 31],'B': [3, 60],'F': [58, 3],'D': [57, 58]}

清楚地看到:

'A': [62, 17]

'E': [*31*, 62]

'C': [60, *31*]

'B': [3, 60]

'F': [58, 3]

'D': [57, 58]

有一种简单的方法可以对它们进行排序吗?如果主题已经存在, 你能给我发链接吗?我还没有找到它。 先感谢您。 NB。在所有情况下,我知道链的第一个和最后一个值(17和57)

2 个答案:

答案 0 :(得分:1)

鉴于其他人对字典顺序的说法以及违反海报希望有字典,我会返回一个排序列表。 我在In Python, how do I index a list with another list?

使用了接受的答案
d= {'A': [62, 17], 'B': [59, 60], 'C': [60, 61], 'D': [57, 58], 'E': [61, 62], 'F': [58, 59]}
myList = [max(value) for key,value in d.items()]
print(myList)
myIndex = sorted(range(len(myList)),key=lambda x:myList[x],reverse=True)
L = [(key,value) for key,value in d.items()]
[L[i] for i in myIndex]

答案 1 :(得分:0)

事实上,我不需要新词典。但是按项目的公共值排序的有序列表。 它必须看起来像那样: 列表= [17,62,32,60,3,58,57]