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)