파이썬 Collections 모듈

·2023년 6월 25일
0
post-thumbnail

📌 Collections란?


파이썬의 기본 자료 구조인 리스트, 튜플, 딕셔너리를 확장시킨 컨테이너 타입들의 구현체.



📌 Collections import하기


from collections import deque
from collections import Counter
from collections import OrderedDict
from collections import defaultdict
from collections import namedtuple

대소문자 주의!



📌 deque


deque란?

double-ended-queue의 약자로, 양방향에서 데이터를 처리할 수 있는 자료구조다.
대부분의 메소드가 list와 유사하다.

deque 주요 메소드

append(item) : item을 데크의 오른쪽 끝에 삽입한다.
appendleft(item) : item을 데크의 왼쪽 끝에 삽입한다.
pop() : 데크의 오른쪽 끝 엘리먼트를 가져오는 동시에 데크에서 삭제한다.
popleft() : 데크의 왼쪽 끝 엘리먼트를 가져오는 동시에 데크에서 삭제한다.
extend(array) : 주어진 배열(array)을 순환하면서 데크의 오른쪽에 추가한다.
extendleft(array) : 주어진 배열(array)을 순환하면서 데크의 왼쪽에 추가한다.
remove(item) : item을 데크에서 찾아 삭제한다.
rotate(num) : 데크를 num만큼 회전한다(양수면 오른쪽, 음수면 왼쪽).



📌 Counter


Counter란?


from collections import Counter
scores = ['A', 'B', 'B', 'C', 'C', 'D', 'A']
counter = Counter(scores)
print(counter)
# Counter({'A':2, 'B':2, 'C':2, 'D':1})

파라미터 내부의 각 원소가 몇 번 나오는지 Dictionary 형태로 반환한다.

Counter 주요 메소드

  • update()

score2 = ['C', 'D']
counter.update(score2)
print(counter)
# Counter({'C':3, 'A':2, 'B':2, 'D':2})

Counter의 값을 갱신한다.

  • elements()

list(counter.elements())
#['A','A','B','B','C','C','C','D','D']

Counter 요소를 무작위 순서로 반환한다.

  • most_common()

counter.most_common(2)
#[('C',3),('A',2)]

입력된 수만큼의 순위를 tuple 형태로 리턴한다.

  • subtract()

counter.subtract(score2)
print(counter)
# Counter({'A':2, 'B':2, 'C':2, 'D':1})

해당하는 요소를 빼준다.



📌 OrderedDict


OrderedDict란?

순서가 유지되는 dictionary.
python 3.6 이후부터는 기본 dictionary도 OrderedDict와 같은 기능을 가진다.

OrderedDict 주요 메소드

  • pop_item(last=True)

    마지막에 들어온 아이템을 pop한다.(LIFO)
    last를 False로 바꾸면 첫 아이템을 pop한다. (FIFO)
  • move_to_end(key,last=True)

    key에 해당하는 아이템을 맨 뒤로 옮긴다.
    last를 False로 바꾸면 맨 앞으로 옮긴다.


📌 defaultdict


defaultdict란?

from collections import defaultdict

d1 = defaultdict(int)  # default : 0
d2 = defaultdict(set)  # default : 빈 set
d3 = defaultdict(list) # default : 빈 list
d4 = defaultdict(dict) # default : 빈 dict
d5 = defaultdict(lambda: '123') # default : 123

dictionary에서 검색한 key가 존재하지 않을 경우 KeyError가 발생하는 단점을 보완한 객체.
존재하지 않는 key를 접근하면 default로 설정된 값이 나온다.



📌 namedtuple


namedtuple이란?

index를 기준으로 접근하는 기존 tuple에 key(name)으로 접근하는 방식을 추가한 tuple.

from collections import namedtuple

Book = namedtuple('Book', ['title', 'price'])
mybook = Book("파이썬", 20000)
print(mybook.title, mybook.price)

0개의 댓글