-2

このプログラムを思いついたのですが、うまくいきません。リスト内のどの値が最も多く表示されるかを判断する必要があります。たとえば、どの獲物が捕食者によって最も多く食べられているかなどです。どんな助けでも素晴らしいでしょう。ありがとう!

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)
4

2 に答える 2

1

を使用できます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()

于 2012-12-07T01:29:37.003 に答える
0

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])

ただし、長さが等しい値の任意の結果が得られます。

于 2012-12-07T00:55:27.403 に答える