python - 如何按值对 Python 字典进行排序?

标签 python sorting

Possible Duplicate:
In Python how do I sort a list of dictionaries by values of the dictionary?
Sorting Python dictionary based on nested dictionary values

我有如下形式的字典:

a_dict = { 'e': (1, 100), 'a': (2, 3) }

我无法按元组的第二个元素对其进行排序。结果字典将如下所示:

a_dict = { 'a': (2, 3), 'e': (1, 100) }

最佳答案

字典不能这样排序,但您可以对其内容进行排序:

sorted(a_dict.items(), key=lambda (k, (v1, v2)): v2)
sorted(a_dict.items(), key=lambda item: item[1][1])    # Python 3

您可以将结果放入 collections.OrderedDict (自 2.7 起):

OrderedDict(sorted(a_dict.items(), key=lambda (k, (v1, v2)): v2))
OrderedDict(sorted(a_dict.items(), key=lambda item: item[1][1])    # Python 3

关于python - 如何按值对 Python 字典进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11932729/

相关文章:

python - 无法从Python中的字典中获取值

类切片中的 Python 列表不起作用

java - 最佳搜索给定区域中的 2D 点(网络服务)

R graph 仅针对指定级别按级别重新排序因子

查找不在列表中的最小非负整数的算法

javascript - Python/Flask 中基于时间的 Jinja 元素自动重新加载,无需刷新页面

python - 异常 : Python. 在 pyinstaller 中找不到运行时

python - 单元格pyqt中的小部件对齐

linux - 尝试根据每条记录的内容将一个非常大的文件拆分成多个较小的文件 (perl/linux)

arrays - 排序数组和对应数组