파이썬 Collections 라이브러리 자세히 알아보기

파이썬의 collections
모듈은 고급 데이터 구조를 제공하여 개발자가 다양한 상황에서 데이터를 더 쉽게 관리할 수 있도록 도와줍니다. 뿐만 아니라, 대부분의 코딩테스트에서 활용할 수 있는 모듈이기 때문에 사용법을 잘 익혀두면 많은 도움이 됩니다. 따라서 이번 글에서는 collections
모듈에 포함된 주요 클래스들에 대해 알아보고, 예제 코드와 함께 각 클래스의 사용법을 단계별로 자세히 설명하겠습니다.
1. Counter
Counter
는 요소의 개수를 셀 때 유용한 클래스로, 주어진 iterable 객체의 요소들을 딕셔너리 형태로 저장하면서 그 개수를 세줍니다.
from collections import Counter
# 예제: 리스트의 요소 개수 세기
data = ['apple', 'banana', 'apple', 'orange', 'banana', 'apple']
count = Counter(data)
print(count)
출력 결과:
Counter({'apple': 3, 'banana': 2, 'orange': 1})
Counter
는 데이터를 쉽게 분석하고 빈도수를 파악할 때 매우 유용합니다.
2. defaultdict
defaultdict
는 키가 존재하지 않을 때 기본값을 자동으로 설정할 수 있는 딕셔너리입니다. 일반적인 딕셔너리에서는 존재하지 않는 키에 접근할 때 에러가 발생하지만, defaultdict
를 사용하면 기본값을 반환합니다.
from collections import defaultdict
# 예제: 기본값이 0인 딕셔너리 생성
default_dict = defaultdict(int)
default_dict['apple'] += 1
print(default_dict)
출력 결과:
defaultdict(<class 'int'>, {'apple': 1})
defaultdict
는 키가 존재하지 않을 때 기본값을 쉽게 설정하여 코드의 간결성과 안전성을 높여줍니다.
3. OrderedDict
OrderedDict
는 입력된 순서를 유지하는 딕셔너리입니다. 파이썬 3.7 이후의 기본 딕셔너리도 순서를 유지하지만, 이전 버전이나 명시적인 사용을 원할 때 유용합니다.
from collections import OrderedDict
# 예제: 순서를 유지하는 딕셔너리 생성
d = OrderedDict()
d['banana'] = 3
d['apple'] = 5
d['orange'] = 2
print(d)
출력 결과:
OrderedDict([('banana', 3), ('apple', 5), ('orange', 2)])
OrderedDict
를 사용하면 데이터의 순서를 유지하면서 작업할 수 있어 직관적인 데이터 처리가 가능합니다.
4. namedtuple
namedtuple
은 튜플의 서브클래스로, 이름으로 필드에 접근할 수 있게 해줍니다. 보통 튜플은 인덱스로 접근하지만, namedtuple
을 사용하면 더 가독성 있는 코드를 작성할 수 있습니다.
from collections import namedtuple
# 예제: 이름을 갖는 튜플 생성
Point = namedtuple('Point', ['x', 'y'])
point = Point(10, 20)
print(point.x, point.y)
출력 결과:
10 20
namedtuple
은 구조화된 데이터를 더 명확하게 표현하고 관리하는 데 매우 유용합니다.
5. deque
deque
는 양쪽 끝에서 빠르게 삽입과 삭제를 할 수 있는 양방향 큐입니다. 리스트보다 효율적인 방식으로 큐 연산을 수행할 수 있어 성능상 유리합니다.
from collections import deque
# 예제: deque 사용하기
deque_list = deque(['a', 'b', 'c'])
deque_list.append('d')
deque_list.appendleft('z')
print(deque_list)
출력 결과:
deque(['z', 'a', 'b', 'c', 'd'])
deque
를 사용하면 양쪽 끝에서의 데이터 추가와 삭제가 리스트보다 훨씬 효율적이므로 큐 구조가 필요한 상황에서 매우 유용합니다.
마무리
이번 글에서는 파이썬의 collections
모듈에 포함된 주요 클래스들인 Counter
, defaultdict
, OrderedDict
, namedtuple
, deque
에 대해 살펴보았습니다. 이 클래스들은 복잡한 데이터 구조를 보다 쉽고 직관적으로 다룰 수 있도록 도와주기 때문에, 다양한 상황에서 유용하게 사용할 수 있습니다. 각 클래스의 특성을 잘 이해하고, 필요에 따라 적절히 사용하여 파이썬 코드를 더욱 효율적으로 작성해보세요!
'Programming > Python' 카테고리의 다른 글
Matplotlib 한글 깨지는 문제 해결하기 (윈도우, 맥 plt 한글깨짐) (0) | 2024.10.24 |
---|---|
파이썬 날짜 데이터 다루기 (datetime, timedelta, pandas) (0) | 2024.10.15 |
[SQLAlchemy] Python과 SQL 데이터베이스 연동하기 (postgresql) (0) | 2024.10.12 |
Python Web Scraping: BeautifulSoup vs. Selenium - 사용법과 차이점 (0) | 2024.10.10 |
[Pandas] 파이썬에서 판다스(Pandas) 라이브러리 기초 사용법 정리 (1) | 2024.10.07 |