2.2 KiB
2.2 KiB
collections 모듈: 다양한 컨테이너 자료형
collections 모듈은 파이썬의 기본 컨테이너 자료형인 리스트, 딕셔너리, 튜플 등을 확장하여 다양한 기능을 제공하는 모듈입니다. 특정한 목적에 맞는 자료형을 제공하여 코드의 가독성을 높이고, 개발 생산성을 향상시키는 데 도움을 줍니다.
-
Counter
해시 가능한 객체(숫자, 문자열 등)의 개수를 세는 데 특화된 딕셔너리 서브클래스입니다. 단어 빈도수 계산, 투표 결과 집계 등에 유용하게 사용됩니다.
-
defaultdict
키가 존재하지 않을 때 기본값을 설정하여 반환하는 딕셔너리 서브클래스입니다. 데이터 구조를 초기화할 때 편리하며, 특히 중첩된 데이터 구조를 만들 때 유용합니다.
-
OrderedDict
항목이 추가된 순서를 기억하는 딕셔너리 서브클래스입니다. 딕셔너리의 순서를 유지해야 할 때 사용합니다.
-
deque
양쪽 끝에서 효율적으로 요소를 추가하거나 삭제할 수 있는 리스트와 유사한 자료형입니다. 큐, 스택 등을 구현하는 데 사용됩니다.
-
namedtuple
이름이 있는 필드를 가진 튜플을 생성하는 팩토리 함수입니다. 객체의 속성에 접근할 때 더 명확하고 안전하게 사용할 수 있습니다.
from collections import Counter, defaultdict, OrderedDict, deque, namedtuple
# Counter
words = ['apple', 'banana', 'apple', 'orange']
word_counts = Counter(words)
print(word_counts) # Counter({'apple': 2, 'banana': 1, 'orange': 1})
# defaultdict
default_dict = defaultdict(list)
default_dict['colors'].append('red')
default_dict['colors'].append('blue')
print(default_dict) # defaultdict(<class 'list'>, {'colors': ['red', 'blue']})
# OrderedDict
ordered_dict = OrderedDict()
ordered_dict['a'] = 1
ordered_dict['b'] = 2
print(ordered_dict) # OrderedDict([('a', 1), ('b', 2)])
# deque
queue = deque(['a', 'b', 'c'])
queue.append('d')
queue.popleft()
print(queue) # deque(['b', 'c', 'd'])
# namedtuple
Point = namedtuple('Point', ['x', 'y'])
pt = Point(10, 20)
print(pt.x, pt.y) # 10 20