我想出了这个程序,但它不起作用。我需要确定列表中出现最多的值。例如,捕食者吃掉的猎物最多。任何帮助都会很棒。谢谢!
max_value=0
for pred in dictionary:
for prey in dictionary[pred]:
if len(dictionary[pred]) >= max_value:
max_value= len(dictionary[pred])
p=prey
print(p)
我想出了这个程序,但它不起作用。我需要确定列表中出现最多的值。例如,捕食者吃掉的猎物最多。任何帮助都会很棒。谢谢!
max_value=0
for pred in dictionary:
for prey in dictionary[pred]:
if len(dictionary[pred]) >= max_value:
max_value= len(dictionary[pred])
p=prey
print(p)
您可以使用collections.Counter
:
dictionary = {'a':1, 'b':42, 'c':3, 'd':42}
from collections import Counter
cntr = Counter(value for value in dictionary.values())
print cntr.most_common(1)
输出:
[(42, 2)]
其中显示了最常见的值以及它出现的次数。请注意,可能存在联系,您可能需要对返回的结果进行进一步处理most_common()
。
你可以看看heapq
得到最长的n:
>>> d = {1: [1, 2], 2:[2,3,4])
>>> heapq.nlargest(1, d.iteritems(), key=lambda (k,v): len(v))
(2, [2, 3, 4])
或使用max
:
>>> max(d.iteritems(), key=lambda (k,v): len(v))
(2, [2, 3, 4])
但是,将为您提供长度相等的值的任意结果。