2016-05-17 160 views
2

我有一个字典{'a': 2, 'b': 0, 'c': 1}如何按值排序字典的键?

需要通过值的键进行排序,以便我能得到一个列表['b', 'c', 'a']

有没有简单的方法来做到这一点?

+0

的可能的复制[显示结果值Python字典(http://stackoverflow.com/questions/613183/sort-a-python-dictionary-by-value) – zondo

回答

4
sorted_keys = sorted(my_dict, key=my_dict.get) 
2

试试这个:

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

它返回[('b',0),('c',1),('a',2)]。关。 – delsin

+0

现在您可以循环并打印每个键值对的第0个索引。所以,这是一种你甚至不会丢失关键和价值的映射的方式。 –

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

有一个简单的方法来做到这一点。 您可以使用.items()来获取键值并使用排序来相应地对它们进行排序。

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

这不是什么'reverse'确实.... –

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