如何按照字典的值对键进行排序?

7
我有一个字典 {'a': 2, 'b': 0, 'c': 1}
需要按照值的大小来排序键,以便得到一个列表['b', 'c', 'a']
是否有更简便的方法来做这件事?

2
可能是按值对Python字典进行排序的重复问题。 - zondo
5个回答

8
sorted_keys = sorted(my_dict, key=my_dict.get)

3
>>> d={'a': 2, 'b': 0, 'c': 1}
>>> [i[0] for i in sorted(d.items(), key=lambda x:x[1])]
['b', 'c', 'a']

2

试试这个:

import operator
lst1 = sorted(lst.items(), key=operator.itemgetter(1))

它返回[('b', 0), ('c', 1), ('a', 2)]。关闭。 - delsin
现在你可以循环并打印每个键值对的第0个索引。这样,你甚至不会丢失键和值之间的映射关系。 - Priyansh Goel

1

有一种简单的方法来实现它。您可以使用 .items() 获取键值对,并使用 sorted 来对它们进行排序。

dictionary = sorted(dictionary.items(),key=lambda x:x[1])

0
>>> d = {'a':2, 'b':0, 'c':1}
>>> sor = sorted(d.items(), key=lambda x: x[1])
>>> sor
[('b', 0), ('c', 1), ('a', 2)]
>>> for i in sor:
...     print i[0]
...
b  
c 
a

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接