我正在使用 Python 2.5。我有一个以列表列表作为值的字典
{'a': [['6', 3]], 'b': [['5', 1], ['6', 5]], 'c': [['446', 2],['6', 11],['67', 86]] }
我想按第一个列表项的第二个元素对其进行排序,因此,上面的内容将按如下方式排序:
'b': [['5', 1], ['6', 5]],
'c': [['446', 2],['6', 11],['67', 86]]
'a': [['6', 3]]
有什么建议吗?
谢谢 斯科特
最佳答案
字典本身是无序的,所以你不能对它本身进行排序。如果您想创建键值对的排序列表,您可以这样做:
sorted(myDict.iteritems(), key=lambda x: x[1][0][1])
iteritems
返回一个可迭代的(键,值)对,所以 x[1][0][1]
的意思是“取这对的第二个元素(这是值),并取其中的第一个元素(这是列表列表中的第一个列表)并取其中的第二个元素---按顺序,第一个列表中的第二个元素,即你想要什么。
关于python按列表的内部列表对字典进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13481644/