일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 코딩더매트릭스
- recursion
- codingthematrix
- RNN
- effective python
- collections
- NumPy
- 하둡2
- hadoop2
- 하이브
- 주식분석
- C언어
- 그래프이론
- hive
- graph
- tensorflow
- Java
- python
- LSTM
- scrapy
- HelloWorld
- GRU
- yarn
- 딥러닝
- 파이썬
- C
- Sort
- 선형대수
- 텐서플로
- 알고리즘
- Today
- Total
EXCELSIOR
collections 모듈 - deque 본문
collections.deque
1. deque란
Deque(데크)는 double-ended queue 의 줄임말로, 앞과 뒤에서 즉, 양방향에서 데이터를 처리할 수 있는 queue형 자료구조를 의미한다. 아래의 [그림1]은 deque
의 구조를 나타낸 그림이다.
[그림1] Deque 구조
python
에서 collections.deque
는 list
와 비슷하다. list
의 append(), pop()
등의 메소드를 deque
에서도 제공한다. 예제 소스코드들을 통해 list
와 deque
의 차이를 알아보도록 하자. collections.deque
의 자세한 설명은docs.python.org에서 확인할 수 있다.
2. collections.deque의 메소드(method)들
collections.deque
의 메소드들 중 list
와 차이를 보이는 메소드들 위주로 살펴 보도록 한다. 전체 메소드들은 docs.python.org에서 확인할 수 있다.
1) append(x)
list.append(x)
와 마찬가지로 deque
의 오른쪽(마지막)에 추가(삽입)해준다.
2) appendleft(x)
앞에서 설명했다시피, deque
는 양방향에서 데이터를 처리할 수 있는 구조이다. 따라서, append(x)
가 오른쪽에서 추가(삽입)을 해준다면, appendleft(x)
는 왼쪽 즉, 앞쪽에서
3) extend(iterable)
list.extend(iterable)
과 마찬가지로 iterable argument(list, str, tuple...)
를 오른쪽(마지막)에 elements
를 추가(삽입)해주는 메소드이다. (iterable argument 는 arguments의 각 요소를 하나씩 반환 가능한 object를 의미한다.) [예제3-2]는 append vs extend
의 차이를 나타낸 예제이다.
4) extendleft(iterable)
collections.deque.extendleft()
는 appendleft()
와 마찬가지로 왼쪽(앞쪽)에서 데이터를 추가해주는 메소드이다.
5) pop()
list.pop()
과 같이 오른쪽(마지막)에서 부터 차례대로 제거와 반환(remove and return)을 하는 메소드이다.
6) popleft()
pop()
의 반대로, 왼쪽(앞쪽)에서 부터 차례대로 제거와 반환(remove and return)을 하는 메소드이다.
7) rotate(n)
collections.deque.rotate(n)
은 요소들(elements)을
'Python > 자료구조' 카테고리의 다른 글
내장함수 zip() 과 itertools.zip_longest() 함수 (0) | 2017.09.21 |
---|---|
collections 모듈 - OrderedDict (0) | 2017.09.07 |
collections 모듈 - namedtuple (5) | 2017.08.22 |
collections 모듈 - defaultdict (0) | 2017.08.18 |
collections 모듈 - Counter (7) | 2017.08.17 |