반응형

코딩 테스트를 위해 다양한 모듈을 사용 할 수 있지만, 이번에는 collections 모듈을 이용한 예제를 보여드리고자 합니다.

collections 모듈은 다양한 자료형을 제공하여 데이터 처리를 효율적으로 할 수 있게 도와줍니다.

아래 예제들을 통해 확인해보겠습니다

1 - Counter: 요소의 개수를 셀 때 유용합니다.

from collections import Counter

word_counts = Counter("banana")
print(word_counts)  # Counter({'a': 3, 'b': 1, 'n': 2})

🔥 input으로 문자열이 주어졌을 때, 공백 ' '을 기준으로 split하여 단어의 개수를 카운팅하거나 다양한 방법으로 사용해볼 수 있어보이네요

2 - defaultdict: 기본 값을 설정하여 존재하지 않는 키에 대한 에러를 방지합니다.

from collections import defaultdict

word_dict = defaultdict(int)
words = ["apple", "banana", "apple", "orange"]

for word in words:
    word_dict[word] += 1

print(word_dict)  # defaultdict(<class 'int'>, {'apple': 2, 'banana': 1, 'orange': 1})

defaultdict()의 인수로 int를 전달하여 딕셔너리를 생성했고 이때 int를 기준으로 생성한 딕셔너리 d의 값은 항상 0으로 자동 초기화되므로 초기화를 위한 별도의 코드가 필요 없습니다.

defaultdict()의 인수로는 int 외에도 list 등 여러 자료형을 사용할 수 있습니다.

https://dogsavestheworld.tistory.com/entry/python-%EB%94%95%EC%85%94%EB%84%88%EB%A6%AC-defaultdict-%EC%82%AC%EC%9A%A9-%EB%B0%A9%EB%B2%95
여기에 잘 정리되어있으니 들어가 확인해보면 좋을 것 같습니다.

3 - OrderedDict: 요소의 순서를 기억하는 딕셔너리입니다.

from collections import OrderedDict

ordered_dict = OrderedDict()
ordered_dict['banana'] = 3
ordered_dict['apple'] = 4
ordered_dict['orange'] = 2

for key, value in ordered_dict.items():
    print(key, value)
# banana 3
# apple 4
# orange 2

🔥 때로는 dict에 넣은 순서대로 유지되길 바랄때가 있는데 그럴 때 이 orderedDict를 생각해보면 좋을 것 같습니다

4 - deque: 양방향 큐로 스택 및 큐의 기능을 모두 가집니다.

from collections import deque

dq = deque([1, 2, 3])
dq.appendleft(0)  # 왼쪽에 추가
dq.append(4)      # 오른쪽에 추가
print(dq)         # deque([0, 1, 2, 3, 4])

dq.popleft()      # 왼쪽 요소 제거
dq.pop()          # 오른쪽 요소 제거
print(dq)         # deque([1, 2, 3])

🔥 deque 는 현업에서도 여기저기 많이쓰일 수 있는 중요한 자료구조입니다. deque를 아직 잘 모른다면 stack과 queue도 함께 공부해볼 수 있는 기회가 되겠네요!

그 외에도 다양한 것이 있지만, collection 모듈에서 위 내용들을 잘 사용하면 코딩 테스트에서 다양한 결과를 쉽게 만들어 낼 수 있습니다.

반응형