# Part 3: 파이썬 컬렉션 심화 - 핵심 용어집 - **자료구조 (Data Structure)** - **정의**: 프로그램에서 데이터를 효율적으로 저장, 관리, 처리하기 위한 구조. 데이터의 특성과 사용 목적에 맞는 적절한 자료구조를 선택하는 것은 알고리즘의 성능에 큰 영향을 미칩니다. (예: 리스트, 튜플, 딕셔너리, 셋) - **관련 파트**: [Part 3: 파이썬 컬렉션 심화](../part_3_python_collections.md) - **튜플 언패킹 (Tuple Unpacking)** - **정의**: 튜플이나 리스트 같은 시퀀스의 각 요소를 여러 변수에 한 번에 할당하는 기능. 코드의 가독성을 높이고 간결하게 만들어줍니다. `*`를 사용하면 나머지 요소들을 리스트로 묶어 받을 수도 있습니다. - **관련 파트**: [Part 3: 파이썬 컬렉션 심화](../part_3_python_collections.md) - **`collections.Counter`** - **정의**: 리스트나 문자열과 같은 순회 가능한(iterable) 객체 안의 요소들의 개수를 세어 딕셔너리 형태로 반환하는 특수 컨테이너. `most_common()` 메서드를 통해 가장 빈번하게 등장하는 요소를 쉽게 찾을 수 있습니다. - **비유**: '똑똑한 재고 관리인'. 각 항목이 몇 개 있는지 자동으로 세고, 가장 인기 있는 상품이 무엇인지 즉시 알려줍니다. - **관련 파트**: [Part 3: 파이썬 컬렉션 심화](../part_3_python_collections.md) - **`collections.defaultdict`** - **정의**: 딕셔너리를 생성할 때 키(key)가 없을 경우의 기본값을 미리 지정할 수 있는 특수 컨테이너. 존재하지 않는 키에 접근할 때 `KeyError`를 발생시키는 대신, 지정된 기본값(예: `int`->0, `list`->[])을 자동으로 생성하여 코드를 간결하게 만들어줍니다. 특히 데이터를 그룹핑할 때 유용합니다. - **비유**: '자동 완성 노트'. 빈 페이지에 글을 쓰려고 할 때마다 자동으로 줄을 그어주는 노트처럼, 키가 없을 때마다 기본값을 알아서 채워줍니다. - **관련 파트**: [Part 3: 파이썬 컬렉션 심화](../part_3_python_collections.md) - **`collections.deque`** - **정의**: '덱(Deck)'이라고 읽으며, 데이터의 양쪽 끝(앞, 뒤)에서 항목을 빠르게 추가(`append`, `appendleft`)하거나 제거(`pop`, `popleft`)할 수 있도록 최적화된 리스트와 유사한 컨테이너. - **비유**: '양방향 고속도로 입출구'. 일반적인 일방통행 도로와 달리, 양쪽 끝에서 차가 빠르게 진입하고 빠져나갈 수 있습니다. 최근 사용 목록(LRU 캐시)이나 큐(Queue)를 구현할 때 매우 효율적입니다. - **관련 파트**: [Part 3: 파이썬 컬렉션 심화](../part_3_python_collections.md) - **`collections.namedtuple`** - **정의**: 튜플의 각 위치에 이름을 부여하여, 인덱스뿐만 아니라 이름으로도 데이터에 접근할 수 있게 만든 튜플의 확장 버전. 코드의 가독성을 획기적으로 높여줍니다. - **비유**: '이름표가 붙은 칸막이 상자'. 그냥 '0번 칸'이 아니라 'x좌표 칸', 'y좌표 칸'처럼 이름으로 내용물을 명확하게 구분할 수 있습니다. - **관련 파트**: [Part 3: 파이썬 컬렉션 심화](../part_3_python_collections.md)