python按列表的内部列表对字典进行排序

标签 python sorting

我正在使用 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/

相关文章:

Python - 创建 2 个新列,其中包含多个行值的第 25 个和第 75 个百分位

python - Scrapy不同数量的url返回

c# - 快速排序部分排序数组

c# - 自定义对象列表中属性列表的 LINQ 排序

python - 使用 usecols 时 Pandas 保留索引列

python - 从 pip 安装 pymongo 后无法运行 mongod 命令

php - 如何在字符串中的某个字符之后按字母顺序对php数组进行排序

javascript - 将json对象插入javascript中的有序数组

python - 预先列出 python

python - 将 ndarray 与一维数组中的值进行比较以获得掩码