如何按值降序排列python字典。如果两个值相同,则按字典顺序对项目排序?

2024-09-29 21:42:59 发布

您现在位置:Python中文网/ 问答频道 /正文

dictionary={'b': 5, 'a': 2, 'k': 5}

正确的输出应该是:dictionary={b':5,'k':5,'a':2}

采用以下方法:

sorted(dictionary.items(), key=itemgetter(1), reverse=True)

但是输出是{'k': 5, 'b': 5, 'a': 2}

edit1:我在用python3


Tags: 方法keytruedictionaryitemspython3reversesorted
1条回答
网友
1楼 · 发布于 2024-09-29 21:42:59

python版本可能无法保持输入键值对的顺序。在这种情况下,您可以使用^{}

from operator import itemgetter
from collections import OrderedDict

dictionary={'b': 5, 'a': 2, 'k': 5}

s = OrderedDict(sorted(dictionary.items(), key=itemgetter(1), reverse=True))
print(s)
# OrderedDict([('b', 5), ('k', 5), ('a', 2)])

如果您的python版本是<;=3.5,dict将失去它们的顺序;在python3.6中,顺序保持被认为是一个实现细节,不应该依赖它。starting from python 3.7 this is considered是语言规范的一部分。你知道吗

因此,从python3.7开始,您的代码将不需要OrderedDict,您可以使用常规的dict。你知道吗

相关问题 更多 >

    热门问题