Python 컬렉션 모듈: 고급 컨테이너 유형
Python의 컬렉션 모듈을 사용하는 방법을 알아보세요. 마스터 카운터, defaultdict, namestuple, deque 및 복잡한 데이터 구조를 단순화하는 방법.
개요
Python의 기본 컨테이너(목록, 사전, 집합, 튜플)는 대부분의 작업에 충분하지만 복잡한 프로그램에는 특수한 데이터 구조가 필요한 경우가 많습니다. 이 문제를 해결하기 위해 Python은 내장된 '컬렉션' 모듈을 제공합니다. 이 모듈에는 일반적인 프로그래밍 작업을 보다 효율적으로, 보다 명확하고 자체 문서화되는 구문으로 해결하도록 설계된 고성능 컨테이너 데이터 유형이 포함되어 있습니다.
가장 유용한 클래스 중에는 `defaultdict`가 있는데, 이는 일반 사전처럼 작동하지만 누락된 키를 기본값(예: 빈 목록 또는 정수 0)으로 자동 초기화하여 자세한 키 검사가 필요하지 않습니다. 또 다른 강력한 기능은 'Counter' 클래스로, 특히 반복 가능 항목의 항목 발생을 집계하는 데 최적화되어 있습니다. 빠른 큐 및 스택의 경우 `deque`(양단 큐)는 `O(N)` 시프트로 인해 어려움을 겪는 목록과 달리 양쪽 끝에서 `O(1)` 삽입 및 삭제를 제공합니다.
마지막으로 모듈은 점 표기법과 전통적인 인덱스(예: `point[0]` 대신 `point.x`)를 사용하여 액세스할 수 있는 경량의 튜플과 유사한 객체를 생성하는 `namedtuple`을 제공합니다. 이는 클래스의 가독성과 함께 튜플의 속도와 불변성을 제공합니다. 컬렉션 모듈을 작업 흐름에 통합하면 코드가 우아하고 성능이 뛰어나며 깔끔한 상태로 유지됩니다.
코드 및 실행 출력
Counter를 사용하여 단어 수를 계산하고 defaultdict를 사용하여 사전 그룹을 구성합니다.
from collections import Counter, defaultdict, namedtuple
# 1. Counter: Tallying items
votes = ["yes", "no", "yes", "yes", "no"]
vote_counts = Counter(votes)
print(f"Vote Counts: {vote_counts}")
print(f"Most common: {vote_counts.most_common(1)}")
# 2. defaultdict: Grouping values
grouped_data = defaultdict(list)
grouped_data["engineers"].append("Alice")
grouped_data["engineers"].append("Bob")
print(f"Grouped Data: {dict(grouped_data)}")
# 3. namedtuple: Clean records
Point = namedtuple("Point", ["x", "y"])
p = Point(10, 20)
print(f"Point x: {p.x}, Point y: {p.y}")Vote Counts: Counter({'yes': 3, 'no': 2})
Most common: [('yes', 3)]
Grouped Data: {'engineers': ['Alice', 'Bob']}
Point x: 10, Point y: 20단계별 구현
- 카운터를 통해 로그 파일을 분석하여 오류 발생 횟수 계산
- deque를 사용하여 우선순위 큐 또는 작업 스케줄러 구축
- 네임드튜플을 사용하여 좌표 차원 또는 데이터 레코드 표현
자주 묻는 질문
대기열 작업에서 deque가 목록보다 빠른 이유는 무엇입니까?
목록에서는 맨 앞에서 삽입하거나 삭제할 때(O(N)) 메모리의 모든 후속 요소를 이동해야 합니다. deque는 이중 연결 리스트로 구현되어 양쪽 끝에서 O(1) 연산을 허용합니다.
네임드튜플의 요소를 변경할 수 있나요?
아니요. 네임드 튜플은 표준 튜플을 상속하므로 완전히 불변입니다. 수정된 새 인스턴스를 반환하려면 ._replace() 메서드를 사용해야 합니다.
관련 주제
권장 Python 리소스
관련 대화형 튜토리얼, 치트 시트, 코드 비교를 통해 지식을 확장하세요.
Python에서 목록을 정렬하는 방법(오름차순 및 내림차순)
sort() 메서드와 sorted() 함수를 사용하여 Python에서 목록을 정렬하는 방법을 알아보세요. 사용자 정의 키 정렬 및 역순 예시를 살펴보세요.
Python 문자열 메서드 치트 시트
Python 문자열 조작에 대한 완전한 참조 가이드입니다. 문자열 속성의 서식 지정, 검색, 분할, 바꾸기 및 확인을 마스터합니다.
Python 대 JavaScript: 어떤 프로그래밍 언어가 가장 좋나요?
Python과 JavaScript를 포괄적으로 비교합니다. 구문 차이점, 성능, 사용 사례(백엔드와 프런트엔드) 및 코딩 예제를 살펴보세요.