Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 2D 목록에서 가장 일반적인 요소 찾기

<시간/>

2D 목록에는 요소로 목록이 있습니다. 즉, 목록의 목록입니다. 이 기사에서는 목록 내의 모든 목록 중에서 가장 일반적인 요소를 찾아야 합니다.

최대 및 개수 포함

주어진 하위 목록에 요소가 있는지 확인하기 위해 조건이 있는 다음을 설계합니다. 그런 다음 최대 빈도의 요소를 가져오기 위해 count 함수와 함께 max 함수를 적용합니다.

예시

def highest_freq(lst):
   SimpleList = [el for sublist in lst for el in sublist]
   return max( SimpleList, key= SimpleList.count)
# Given list
listA = [[45, 20, 11], [20, 17, 45], [20,13, 9]]
print("Given List:\n",listA)
print("Element with highest frequency:\n",highest_freq(listA))

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

Given List:
[[45, 20, 11], [20, 17, 45], [20, 13, 9]]
Element with highest frequency:
20

체인 포함

여기서 우리는 위의 것과 유사한 접근 방식을 취합니다. 그러나 우리는 itertools 모듈의 chain 함수를 사용합니다.

예시

from itertools import chain
def highest_freq(lst):
   SimpleList = list(chain.from_iterable(lst))
   return max( SimpleList, key= SimpleList.count)
# Given list
listA = [[45, 20, 11], [20, 17, 45], [20,13, 9]]
print("Given List:\n",listA)
print("Element with highest frequency:\n",highest_freq(listA))

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

Given List:
[[45, 20, 11], [20, 17, 45], [20, 13, 9]]
Element with highest frequency:
20

카운터 및 체인 포함

이 접근 방식에서 컬렉션의 카운터 함수는 itertools의 체인 함수를 사용하여 검색된 요소의 개수를 유지합니다.

예시

from itertools import chain
from collections import Counter
def highest_freq(lst):
   SimpleList = chain.from_iterable(lst)
   return Counter(SimpleList).most_common(1)[0][0]
# Given list
listA = [[45, 20, 11], [20, 17, 45], [20,13, 9]]
print("Given List:\n",listA)
print("Element with highest frequency:\n",highest_freq(listA))

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

Given List:
[[45, 20, 11], [20, 17, 45], [20, 13, 9]]
Element with highest frequency:
20