按值排序的字典键

时间:2015-01-19 01:08:39

标签: python

我有这个:

{1: 'Foo', 2: 'Bar', 3: 'Chazz', 4: 'Alpha', 6: 'Zorn', 7: 'Doe'}

我想要一个dict中的键列表,按字母顺序按值排序:

[4,2,3,7,1,6]

2.7中最简单,最pythonic的方法是什么?

2 个答案:

答案 0 :(得分:5)

>>> d = {1: 'Foo', 2: 'Bar', 3: 'Chazz', 4: 'Alpha', 6: 'Zorn', 7: 'Doe'}    
>>> sorted(d, key=d.get)
[4, 2, 3, 7, 1, 6]

请注意,这是区分大小写的。例如,如果"Bar"改为"bar",则上述结果将在列表的最后添加2。在这种情况下,您可能需要:

sorted(d, key=lambda x: d[x].lower())

答案 1 :(得分:5)

嗯,这很好用。不确定是否有更好/更pythonic的方式:

sorted_list = sorted(a, key=a.get)

a是dict。