[Python] collection.deque에 대하여

조시현·2022년 8월 9일
0

Python

목록 보기
5/8

그래프 알고리즘을 공부하는데 파이썬에서 collection.deqeu를 자주 사용할 것 같아서
재대로 공부를 하고 넘어가고 싶었다.

1.deque란

deque는 double-ended queue 의 줄임말로, 앞과 뒤, 즉, 양방향에서 데이터를 처리(삽입, 삭제) 할 수 있는 queue형 자료구조를 의미한다.

python에서는 collections.deque는 리스트와 비슷하다.
(처음엔 deque라는 자료구조를 알지 못하고 그래프라는 아이디어만 생각 했을 때는 list를 사용해야겠다고 생각했으니 말이다.)

2.deque의 메소드

1.append(x)

deque의 오른쪽에 x를 추가한다.

2.appendleft(x)

deque의 왼쪽에 x를 추가한다.

3.clear()

deque에서 모든 요소를 제거해서 길이를 0으로 유지한다.

4.copy()

deque의 얕은 복사본을 만든다.

5.count(x)

x와 같은 deque의 요소의 수를 계산한다.

6.pop()

deque의 오른쪽에서 요소를 제거하고 반환한다.

7.popleft()

deque의 왼쪽에서 요소를 제거하고 반환한다.

8.remove(value)

value의 첫번째 항목을 제거한다.

9.reverse()

deque의 요소를 뒤집은 다음 None을 반환한다.

10.extend(iterable argument)

iterable argument를(list, str, tuple...)를 오른쪽에 추가한다.
(iterable argument는 argument의 각 요소를 하나씩 반환 가능한 object를 의미한다)

import collections

deq = collection.deque(['a','b','c'])
deq1 = collection.deque(['a','b','c'])
deq.extend('de')
deq1.append('de')

print("deq.extend('de') >> " , deq)
print("deq1.append('de') >> " , deq1)

>> deq.extend('de') >> ['a','b','c','d','e']
>> deq1.append('de') >> ['a','b','c','de']

11.extendleft(iterable argument)

iterable argument를 왼쪽에 추가한다.


출처
https://excelsior-cjh.tistory.com/96
https://docs.python.org/3/library/collections.html#collections.deque

profile
소프트웨어 관련 고민을 좋아하고 상황에 맞는 답을 함께 찾아가는 과정을 좋아합니다. 😀

0개의 댓글