본문 바로가기
Developer/Python

Python List 배열 요소 중복 횟수 구하는 방법 (count duplicates in list)

by 김씩씩 2021. 12. 31.

Python List 배열 요소 중복 횟수 구하는 방법 (count duplicates in list)

 

Python 에서 배열안에 요소들의 중복되는 횟수를 구하는 방법을 알려드리도록 하겠습니다.

 

목차

  • List 안에 모든 요소들의 중복 횟수 구하는 방법
    1. collections 모듈의 Counter 사용하는 방법
    2. for, try-except 사용하는 방법
    3. for, in 사용하는 방법
  • List 안에 특정 요소의 중복 횟수 구하는 방법
    1. List.count() 사용하는 방법
    2. 모든 요소들의 중복되는 횟수를 담은 dict에서 찾는 방법

 

List 안에 모든 요소들의 중복 횟수 구하는 방법

1. collections 모듈의 Counter 사용하는 방법

from collections import Counter

array = ["F", "D", "A", "C", "A", "C", "F", "B", "C", "E", "C", "C", "F", "A", "B", "E", "F", "E"]

counter = Counter(array)

print(array)
print(counter)
print(dict(counter))

# Output
# ['F', 'D', 'A', 'C', 'A', 'C', 'F', 'B', 'C', 'E', 'C', 'C', 'F', 'A', 'B', 'E', 'F', 'E']
# Counter({'C': 5, 'F': 4, 'A': 3, 'E': 3, 'B': 2, 'D': 1})
# {'F': 4, 'D': 1, 'A': 3, 'C': 5, 'B': 2, 'E': 3}

collections 모듈에 있는 Counter 를 사용하면 아주 쉽게 List 안에 모든 요소들의 중복되는 횟수를 셀 수 있습니다.

Counter 객체를 dict() 를 사용하여 dict 형식으로 변환하여 사용하실 수도 있습니다.

 

 

2. for, try-except 사용하는 방법

array = ["F", "D", "A", "C", "A", "C", "F", "B", "C", "E", "C", "C", "F", "A", "B", "E", "F", "E"]

counter = {}
for value in array:
    try: counter[value] += 1
    except: counter[value ] = 1

print(array)
print(counter)

# Output
# ['F', 'D', 'A', 'C', 'A', 'C', 'F', 'B', 'C', 'E', 'C', 'C', 'F', 'A', 'B', 'E', 'F', 'E']
# {'F': 4, 'D': 1, 'A': 3, 'C': 5, 'B': 2, 'E': 3}

fortry-except 를 사용하여 List 안에 모든 요소들의 중복되는 횟수를 셀 수 있습니다.

간단히 방식을 설명드리자면 요소의 갯수를 셀 dictionary 형의 counter 를 하나 만들고,

List를 for 문을 사용하여 돌면서 counter에 이미 해당 현재 값에 해당하는 요소가 있으면 갯수를 증가하고,

없으면 해당 요소의 갯수가 1이라고 만들어주는 방식입니다.

 

 

3. for, in 사용하는 방법

array = ["F", "D", "A", "C", "A", "C", "F", "B", "C", "E", "C", "C", "F", "A", "B", "E", "F", "E"]

counter = {}
for value in array:
    if value in counter:
        counter[value] += 1
    else:
        counter[value] = 1

print(array)
print(counter)

# Output
# ['F', 'D', 'A', 'C', 'A', 'C', 'F', 'B', 'C', 'E', 'C', 'C', 'F', 'A', 'B', 'E', 'F', 'E']
# {'F': 4, 'D': 1, 'A': 3, 'C': 5, 'B': 2, 'E': 3}

같은 방식으로 try-except 가 아닌, if in 을 사용하여 counter 안에 현재 값에 해당하는 요소가 있는지 판별하는 방법으로도

List 안에 모든 요소들의 중복되는 횟수를 셀 수 있습니다.

 

 

List 안에 특정 요소의 중복 횟수 구하는 방법

1. List.count() 사용하는 방법

array = ["F", "D", "A", "C", "A", "C", "F", "B", "C", "E", "C", "C", "F", "A", "B", "E", "F", "E"]

print(array)
print("요소 'C' 갯수 : ", array.count("C"))

# Output
# ['F', 'D', 'A', 'C', 'A', 'C', 'F', 'B', 'C', 'E', 'C', 'C', 'F', 'A', 'B', 'E', 'F', 'E']
# 요소 'C' 갯수 :  5

List 형에 count() 를 사용하여 간단하게 List 안에 특정 요소의 중복 횟수를 구할 수 있습니다.

 

 

2. 모든 요소들의 중복되는 횟수를 담은 dict에서 찾는 방법

array = ["F", "D", "A", "C", "A", "C", "F", "B", "C", "E", "C", "C", "F", "A", "B", "E", "F", "E"]

counter = {}
for value in array:
    try: counter[value] += 1
    except: counter[value ] = 1

print(array)
print("요소 'C' 갯수 : ", counter["C"])

# Output
# ['F', 'D', 'A', 'C', 'A', 'C', 'F', 'B', 'C', 'E', 'C', 'C', 'F', 'A', 'B', 'E', 'F', 'E']
# 요소 'C' 갯수 :  5

앞서 설명드렸던 collections 모듈의 counter, for try-except, for in 등을 사용하여

List 안에 모든 요소들의 중복되는 횟수를 구해둔 변수에서,

원하는 요소의 값을 찾으면 List 안에 특정 요소의 중복 횟수를 구할 수 있습니다.

 

 

 

이상으로 Python 에서 배열안에 요소들의 중복되는 횟수를 구하는 방법에 대한 설명을 마치도록 하겠습니다.

 

 


관련 정보

 

Python List 배열 중복 제거 방법 (순서 유지 방법, 순서 유지 하지 않는 방법)

Python List 배열 중복 제거 방법 (기존 리스트 순서 유지 방법, 순서 유지 하지 않는 방법) Python에서 리스트 내에 존재하는 중복을 제거하는 방법을 알려드리도록 하겠습니다. 방법은 크게 2가

jsikim1.tistory.com


 

도움이 되셨다면 공감, 댓글 부탁드립니다!

궁금하신 점이나 요청사항은 언제든지 말씀해주세요!

피드백도 언제나 환영입니다!

 

감사합니다.


댓글