繁体   English   中英

python字典中的5个最大值

[英]5 maximum values in a python dictionary

我有一个这样的字典:

A = {'a':10, 'b':843, 'c': 39,.....}

我想得到这个dict的5个最大值,并用这个存储一个新的dict。 为了获得我做的最大值:

max(A.iteritems(), key=operator.itemgetter(1))[0:]

也许这是一件容易的事,但我长期坚持下去。 请帮忙!!!

无需使用iteritems和itemgetter。 dict自己的get方法运行正常。

max(A, key=A.get)

类似的排序:

sorted(A, key=A.get, reverse=True)[:5]

最后,如果dict大小无限制,使用堆最终将比完整排序更快。

import heapq
heapq.nlargest(5, A, key=A.get)

有关更多信息,请查看heapq文档

你很亲密 您可以使用排序列表sorted [文件] ,在第一个五个要素:

newA = dict(sorted(A.iteritems(), key=operator.itemgetter(1), reverse=True)[:5])

另请参阅: Python排序方法

你可以在这里使用collections.Counter

dict(Counter(A).most_common(5))

例:

>>> from collections import Counter
>>> A = {'a' : 1, 'b' : 3, 'c' : 2, 'd' : 4, 'e' : 0, 'f' :5}
>>> dict(Counter(A).most_common(5))
{'a': 1, 'c': 2, 'b': 3, 'd': 4, 'f': 5}

试试这个:

dict(sorted(A.iteritems(), key=operator.itemgetter(1), reverse=True)[:5])

对于Python 3

import operator
dict(sorted(A.items(), key=operator.itemgetter(1), reverse=True)[:5])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM