아이엠 !나이롱맨😎
article thumbnail
반응형

 

파이썬의 collections 라이브러리는 유용한 자료구조를 제공하는 표준 라이브러리입니다. 그 중 많이 사용되는 deque와 Counter에 대해 알아보겠습니다.

 

파이썬에서 큐를 구현하는데 있어 Queue라는 라이브러리가 있지만 일반적인 큐를 구현하는 라이브러리는 아닙니다. 따라서 deque를 이용하여 큐 자료구조를 구현해야 합니다.

 

일반적으로 리스트 가장앞에 원소를 삽입할때 시간 복잡도는 O(N)입니다. 하지만 deque의 appendleft()를 사용하면 시간복잡도를 O(1)로 줄일 수 있습니다.

 

  리스트 deque
가장 앞쪽에 원소 추가(appendleft(x)) O(N) O(1)
가장 뒤쪽에 원소 추가(append(x)) O(1) O(1)
가장 앞쪽에 있는 원소 제거(leftpop()) O(N) O(1)
가장 뒤쪽에 있는 원소 제거(pop()) O(1) O(1)

 

deque로 선언한 리스트에서는 일반적인 리스트에서 사용할 수 있는 인덱싱, 슬라이싱 기능은 사용할 수 없습니다. 다만, 리스트의 시작 혹은 끝 부분에 데이터를 삽입하여 삭제할 때는 상당히 효율적입니다.

 

from collections import deque

data = deque([2, 3, 4])
data.append(5)
data.appendleft(1)

print(data)
print(list(data))

data.pop()
data.popleft()

print(data)
print(list(data))

 

collections 라이브러리의 Counter는 등장 횟수를 세는 기능을 제공합니다. 원소별 등장 횟수를 세는 기능이 필요할 때 짧은 소스코드로 이를 구현할 수 있습니다.

 

from collections import Counter

counter = Counter(['red', 'blue', 'red', 'blue', 'green', 'red'])

print(counter['blue'])
print(counter['red'])
print(dict(counter))
반응형

article prev thumbnail
article next thumbnail
profile on loading

Loading...