如何按键升序和值降序对字典进行排序?
How do I sort a dictionary by key ascending & value descending?
我想按如下方式对字典进行排序:
来自
unsorted_list : {'F': 3, 'A': 1, 'B': 2, 'C': 2, 'E': 2, 'D': 1,}
至
sorted_list : {'D': 1, 'A': 1, 'E': 2, 'C': 2, 'B': 2, 'F': 3,}
所以,
- 然后按值升序排序,
- 按键降序排序
如何通过 python 执行此操作?
字典保留插入顺序,因此如果您想 re-order 它们,您需要构建一个新的字典,以所需的顺序插入项目。您可以通过对字典的 items()
进行排序然后将结果传递给 dict()
:
来轻松完成此操作
>>> d = {'F': 3, 'A': 1, 'B': 2, 'C': 2, 'E': 2, 'D': 1,}
>>> dict(sorted(d.items(), key=lambda i: (-i[1], i[0]), reverse=True))
{'D': 1, 'A': 1, 'E': 2, 'C': 2, 'B': 2, 'F': 3}
请注意,如果字典排序对您的用例很重要,您可能需要使用 OrderedDict
,它对重新排列项目有更强大的支持 in-place。
我想按如下方式对字典进行排序:
来自
unsorted_list : {'F': 3, 'A': 1, 'B': 2, 'C': 2, 'E': 2, 'D': 1,}
至
sorted_list : {'D': 1, 'A': 1, 'E': 2, 'C': 2, 'B': 2, 'F': 3,}
所以,
- 然后按值升序排序,
- 按键降序排序
如何通过 python 执行此操作?
字典保留插入顺序,因此如果您想 re-order 它们,您需要构建一个新的字典,以所需的顺序插入项目。您可以通过对字典的 items()
进行排序然后将结果传递给 dict()
:
>>> d = {'F': 3, 'A': 1, 'B': 2, 'C': 2, 'E': 2, 'D': 1,}
>>> dict(sorted(d.items(), key=lambda i: (-i[1], i[0]), reverse=True))
{'D': 1, 'A': 1, 'E': 2, 'C': 2, 'B': 2, 'F': 3}
请注意,如果字典排序对您的用例很重要,您可能需要使用 OrderedDict
,它对重新排列项目有更强大的支持 in-place。