Python:排序列表字典

jay*_*jay 36 python sorting dictionary list

还在学习python(最后!)并且还不能完全绕过这个.我想要做的是使用列表中的第三项按值对列表进行排序.当值只是一个数字或字符串时,按值排序字典很容易,但是这个列表让我感到困惑.

例:

myDict = { 'item1' : [ 7, 1, 9], 'item2' : [8, 2, 3], 'item3' : [ 9, 3, 11 ] }
Run Code Online (Sandbox Code Playgroud)

我希望能够按照每个列表中的第三个值的顺序遍历字典,在本例中为9,3,11.

非常感谢您的帮助!

Aym*_*ieh 43

这是一种方法:

>>> sorted(myDict.items(), key=lambda e: e[1][2])
[('item2', [8, 2, 3]), ('item1', [7, 1, 9]), ('item3', [9, 3, 11])]
Run Code Online (Sandbox Code Playgroud)

key参数的的sorted功能,可以让您导出列表中的每个元素的排序键.

要迭代此列表中的键/值,您可以使用以下内容:

>>> for key, value in sorted(myDict.items(), key=lambda e: e[1][2]):
...   print key, value
... 
item2 [8, 2, 3]
item1 [7, 1, 9]
item3 [9, 3, 11]
Run Code Online (Sandbox Code Playgroud)

  • 我认为这样更清楚:sorted(myDict.items(),key = lambda(k,v):v [2]) (5认同)