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

Python의 목록에서 주어진 요소의 빈도 합계 찾기

<시간/>

주어진 목록에는 많은 반복 항목이 있습니다. 우리는 목록에서 반복되는 그러한 항목의 빈도 합계를 찾는 데 관심이 있습니다. 다음은 이를 달성할 수 있는 방법입니다.

합계

두 개의 목록이 있습니다. 하나에는 값 목록이 있고 다른 하나에는 첫 번째 목록에서 빈도를 확인해야 하는 값이 있습니다. 따라서 첫 번째 목록의 두 번째 목록에 있는 요소의 발생 횟수를 계산하는 for 루프를 만든 다음 sum 함수를 적용하여 빈도의 최종 합을 얻습니다.

예시

chk_list= ['Mon', 'Tue']
big_list = ['Mon','Tue', 'Wed', 'Mon','Mon','Tue']

# Apply sum
res = sum(big_list.count(elem) for elem in chk_list)

# Printing output
print("Given list to be analysed: \n", big_list)
print("Given list to with values to be analysed:\n", chk_list)
print("Sum of the frequency: ", res)

출력

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

Given list to be analysed:
['Mon', 'Tue', 'Wed', 'Mon', 'Mon', 'Tue']
Given list to with values to be analysed:
['Mon', 'Tue']
Sum of the frequency: 5

컬렉션 포함. 카운터

Collections 모듈의 Counter 함수는 빈도를 설정해야 하는 요소만 있는 작은 목록을 반복하면서 값을 분석해야 하는 목록에 적용하여 원하는 결과를 얻을 수 있습니다.

예시

from collections import Counter

chk_list= ['Mon', 'Tue']
big_list = ['Mon','Tue', 'Wed', 'Mon','Mon','Tue']

# Apply Counter

res = sum(Counter(big_list)[x] for x in chk_list)

# Printing output
print("Given list to be analysed: \n", big_list)
print("Given list to with values to be analysed:\n", chk_list)
print("Sum of the frequency: ", res)

출력

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

Given list to be analysed:
['Mon', 'Tue', 'Wed', 'Mon', 'Mon', 'Tue']
Given list to with values to be analysed:
['Mon', 'Tue']
Sum of the frequency: 5