2012-12-07 3 views
-2

나는이 프로그램을 생각해 냈지만 작동하지 않습니다. 내 목록에서 어떤 값이 가장 많이 표시되는지 확인해야합니다. 예를 들어 어떤 먹이가 포식자에 의해 가장 많이 먹는가? 도움이 될 것입니다. 감사!내 사전에 가장 많이 나타나는 값을 결정하는 Python 프로그램?

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) 
+1

들여 쓰기가 꺼져 있거나'if len (dictionary [pred])> = max_value :'에 코드가 없습니다. 세미콜론은 테스트가 참일 경우 실행될 일련의 명령을 갖게됨을 의미합니다. 그러나 상기 테스트에는 명령이 없습니다. –

답변

0

당신은 n은 가장 긴을 얻을 수 heapq 볼 수 있습니다 :

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

당신에게 비록 동일한 길이를이 값에 대한 임의의 결과를 얻을 것이다.

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()에 의해 반환 된 결과를 추가로 처리해야 할 수 있습니다.

관련 문제