我有一个字典,其中每个键都引用一个整数值。最好的方法是根据这些值将键排序成一个列表吗?
我喜欢这一个:
sorted(d, key=d.get)
>>> mydict = {'a':1,'b':3,'c':2}
>>> sorted(mydict, key=lambda key: mydict[key])
['a', 'c', 'b']
my_list = sorted(dict.items(), key=lambda x: x[1])
s/list/my_list/
,因为"list是Python中的关键字"。你的修改没问题,但是list不是一个关键字(参见https://docs.python.org/3/reference/lexical_analysis.html#keywords),因此我的程序片段会(字节码)编译和运行。然而,它是`__builtins__`命名空间中的名称,使用具有本地语境的变量名来遮蔽该名称是一种不良做法,并且使用全局变量名list覆盖它是可怕的,例如`list = tuple`。 - Jonas Kölker[v[0] for v in sorted(foo.items(), key=lambda(k,v): (v,k))]