我有这个:
{1: 'Foo', 2: 'Bar', 3: 'Chazz', 4: 'Alpha', 6: 'Zorn', 7: 'Doe'}
我想要一个dict中的键列表,按字母顺序按值排序:
[4,2,3,7,1,6]
2.7中最简单,最pythonic的方法是什么?
答案 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。