如何按值排序Python dict [英] How to sort a Python dict by value
问题描述
{keyword1:3,keyword2:1,keyword3:5 ,keyword4:2}
我想将它转换成DESC并创建一个关键字列表。例如,这将返回
[keyword3,keyword1,keyword4,keyword2]
我发现使用lambda的所有示例,我并不是很强。有没有一种方法可以循环遍历,并按照我们的方式进行排序?感谢任何建议。
PS:如果有帮助,我可以创建初始的dict。
您可以使用
res = list(sorted(theDict,key = theDict .__ getitem__, reverse = True))
(您不需要 code> in Python 2.x)
theDict .__ getitem __
实际上相当于 lambda x:theDict [x]
。
(lambda只是一个匿名函数,例如
>>> g = lambda x:x + 5
>>> g(123)
128
这相当于
>>> def h(x):
... return x + 5
>>> h(123)
128
)
I have a dict that looks like this
{ "keyword1":3 , "keyword2":1 , "keyword3":5 , "keyword4":2 }
And I would like to convert it DESC and create a list of just the keywords. Eg, this would return
["keyword3" , "keyword1" , "keyword4" , "keyword2"]
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: I could create the initial dict differently if it would help.
You could use
res = list(sorted(theDict, key=theDict.__getitem__, reverse=True))
(You don't need the list
in Python 2.x)
The theDict.__getitem__
is actually equivalent to lambda x: theDict[x]
.
(A lambda is just an anonymous function. For example
>>> g = lambda x: x + 5
>>> g(123)
128
This is equivalent to
>>> def h(x):
... return x + 5
>>> h(123)
128
)
这篇关于如何按值排序Python dict的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!