如何按值对Python字典的键进行排序 [英] How to sort a Python dict's keys by value
问题描述
我有一个像这样的字典
{ "keyword1":3 , "keyword2":1 , "keyword3":5 , "keyword4":2 }
我想将其转换为DESC并创建仅包含关键字的列表.例如,这将返回
And I would like to convert it DESC and create a list of just the keywords. Eg, this would return
["keyword3" , "keyword1" , "keyword4" , "keyword2"]
我发现的所有示例都使用lambda,但我对此并不十分坚决.有什么办法可以让我循环浏览,并随时对其进行排序?感谢您的任何建议.
All examples I found use lambda and I'm not very strong with that. Is there a way I could loop through this, and sort them as I go? Thanks for any suggestions.
PS:如果有帮助的话,我可以以不同的方式创建初始字典.
PS: I could create the initial dict differently if it would help.
推荐答案
您可以使用
res = list(sorted(theDict, key=theDict.__getitem__, reverse=True))
(在Python 2.x中不需要list
)
(You don't need the list
in Python 2.x)
theDict.__getitem__
实际上等效于lambda x: theDict[x]
.
(lambda只是一个匿名函数.例如
(A lambda is just an anonymous function. For example
>>> g = lambda x: x + 5
>>> g(123)
128
这等效于
>>> def h(x):
... return x + 5
>>> h(123)
128
)
这篇关于如何按值对Python字典的键进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!