按值排序的字典键

Wel*_*lls -3 python

我有这个:

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

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

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

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

jme*_*jme 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]
Run Code Online (Sandbox Code Playgroud)

请注意,这是区分大小写的.例如,如果"Bar"相反"bar",上面的结果将2在列表的最后.在这种情况下,您可能需要:

sorted(d, key=lambda x: d[x].lower())
Run Code Online (Sandbox Code Playgroud)


Wel*_*lls 5

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

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

a这个词典在哪里.