2017-12-26 12 views
-10

목록에서 가장 일반적인 값을 반환하는 함수가 필요합니다. 둘 이상의 공통 값이있는 경우 모두 반환하십시오.Python 목록의 가장 일반적인 값

l = [1, 1, 2, 2, 4] 

def most_common(l): 
    #some code 
    return common 

이 반환해야합니다 :

[1, 2] 

둘 다 두 번 표시입니다.

나는 이것에 간단한 기능이 없다는 것에 놀랐습니다. 나는 컬렉션을 시도했지만 이것을 알아낼 수 없습니다.

+3

을 내가 볼 수없는 당신의 " 시도했지만 작동하지 않았습니다 "코드 –

+2

[Python의 가장 일반적인 공통 요소 목록] (https://stackoverflow.com/questions/1518522/python-most-common-element-in-a-list)의 가능한 복제본 –

답변

0

당신은 값으로 카운트와 collections.defaultdict에서 첫 번째 그룹 항목 수 :

from collections import defaultdict 

l = [1, 1, 2, 2, 4] 

counts = defaultdict(int) 
for number in l: 
    counts[number] += 1 

print(counts) 
# defaultdict(<class 'int'>, {1: 2, 2: 2, 4: 1}) 

그런 다음이 사전에서 가장 일반적인 값을 찾을 수 :

most_common = [k for k, v in counts.items() if v == max(counts.values())] 

print(most_common) 
# [1, 2]