728x90
파이썬의 collections
모듈은 기본 자료형을 보완한 고급 자료 구조들을 제공합니다. 특히 deque
, Counter
, defaultdict
, OrderedDict
, namedtuple
은 알고리즘과 실무 프로그래밍에서 자주 사용되는 유용한 도구입니다.
● deque (덱)
deque
는 양쪽 끝에서 빠르게 삽입과 삭제가 가능한 자료 구조입니다. 일반 리스트에 비해 앞쪽에서의 연산이 훨씬 빠릅니다.
from collections import deque
dq = deque([1, 2, 3])
dq.append(4) # 오른쪽 추가
dq.appendleft(0) # 왼쪽 추가
dq.pop() # 오른쪽 제거
dq.popleft() # 왼쪽 제거
● Counter
Counter
는 각 요소의 등장 횟수를 쉽게 계산할 수 있는 딕셔너리 서브클래스입니다.
from collections import Counter
cnt = Counter("banana")
print(cnt) # Counter({'a': 3, 'n': 2, 'b': 1})
print(cnt['a']) # 3
리스트, 문자열, 튜플 등 반복 가능한 자료형을 넣을 수 있으며, .most_common(n)
메서드로 빈도 상위 항목도 추출할 수 있습니다.
● defaultdict
defaultdict
는 기본값을 자동으로 설정할 수 있는 딕셔너리입니다. 존재하지 않는 키에 접근할 경우 기본값을 자동으로 생성합니다.
from collections import defaultdict
dd = defaultdict(int)
dd['a'] += 1
print(dd['a']) # 1
print(dd['b']) # 0 (자동 생성)
● namedtuple
namedtuple
은 튜플에 이름을 부여하여 속성처럼 접근할 수 있게 해줍니다. 데이터 구조를 정의하는 데 유용합니다.
from collections import namedtuple
Point = namedtuple("Point", ["x", "y"])
p = Point(1, 2)
print(p.x, p.y) # 1 2
● 마무리
collections
모듈은 성능과 코드 가독성을 모두 향상시킬 수 있는 고급 자료구조를 제공합니다. 알고리즘 문제 해결이나 실제 업무 로직에서 매우 유용하므로 적극적으로 활용해보시기 바랍니다.
728x90
'프로그래밍언어 > 파이썬[중급]' 카테고리의 다른 글
[파이썬][중급] Chapter17. set의 고급 활용 (0) | 2025.05.23 |
---|---|
[파이썬][중급] Chapter16. heapq와 우선순위 큐 (0) | 2025.05.23 |
[파이썬][중급] Chapter13. itertools 모듈 활용법 (0) | 2025.05.18 |
[파이썬][중급] Chapter12. 이터레이터와 커스텀 반복자 만들기 (0) | 2025.05.18 |
[파이썬][중급] Chapter11. 제너레이터 함수와 yield (0) | 2025.05.18 |