콘텐츠로 건너뛰기

파이썬에서 카운터(counter) 사용 방법

CodeMDD.io

Python의 Counter: 객체 개수 세는 Pythonic한 방법

Python에서 여러 개의 반복되는 객체를 한 번에 세는 것은 프로그래밍에서 흔한 문제입니다. Python은 이러한 문제에 접근하기 위한 다양한 도구와 기술을 제공합니다. 그러나 Python의 Countercollections에서 제공하는 깔끔하고 효율적이며 Pythonic한 해결책을 제공합니다.

이 튜토리얼에서는 다음과 같은 내용을 배웁니다:

  • 동시에 여러 반복되는 객체를 카운트하는 방법
  • Python의 Counter를 사용하여 카운터 생성하기
  • 카운터에서 가장 일반적인 객체 가져오기
  • 객체 개수 업데이트하기
  • Counter를 사용하여 추가적인 계산을 간편하게 수행하기

이 튜토리얼에서는 Python의 이 클래스의 추가 기능인 다중집합으로서의 Counter 사용에 대한 기본을 배우게 됩니다.

Python으로 객체 개수 세기

가끔은 주어진 데이터 소스에서 객체를 카운트하여 그들이 얼마나 자주 등장하는지를 알아야 할 때가 있습니다. 다시 말해, 그들의 빈도를 알아내야 합니다. 예를 들어, 특정 아이템이 리스트나 값의 시퀀스에서 얼마나 자주 나타나는지를 알고 싶을 수 있습니다. 리스트가 짧은 경우, 항목을 카운트하는 것은 간단하고 빠를 수 있습니다. 그러나 리스트가 길 경우, 항목을 카운트하는 것은 더 어려울 수 있습니다.

한 개의 객체의 발생 횟수를 세는 경우, 하나의 카운터를 사용할 수 있습니다. 그러나 여러 다른 객체를 세려면 고유한 객체 수만큼 카운터를 생성해야 합니다.

여러 다른 객체를 한 번에 세려면 Python의 딕셔너리를 사용할 수 있습니다. 딕셔너리의 에는 카운트하려는 객체를 저장하고, 딕셔너리의 에는 주어진 객체의 반복 횟수 또는 객체의 카운트를 저장합니다.

예를 들어, 딕셔너리를 사용하여 시퀀스에서 객체를 카운트하는 경우, 시퀀스를 반복하고, 현재 객체가 딕셔너리에 없는 경우 카운터 (키-값 쌍)를 초기화하고, 그에 따라 카운트를 증가시킵니다.

# 예제 코드
from collections import Counter
sequence = ['apple', 'banana', 'apple', 'cherry', 'banana', 'apple']
counter = Counter()
for obj in sequence:
if obj not in counter:
counter[obj] = 0
counter[obj] += 1
print(counter) # Counter({'apple': 3, 'banana': 2, 'cherry': 1})

위의 코드에서는 시퀀스에 등장하는 각 객체의 카운트를 Counter로 쉽게 계산할 수 있습니다.