[자료구조] 파이썬 큐(Queue), deque 사용법 총정리
큐(Queue)
: 한쪽 끝으로 자료를 넣고, 반대쪽에서는 자료를 뺄 수 있는 선형구조.
이런 자료 구조를 First In First Out 이라고 해서 FIFO 라고 부른다. 선입선출
파이썬 큐(Queue), deque 사용법!
1. deque 만들기
deque : double-ended queue의 약자로 양방향에서 데이터 추가/제거 할 수 있는 자료구조이다.
- 임포트(import) 하기
from collections import deque
2. a_ilst = deque() : deque 형태의 리스트를 만든다. 괄호안은(str 타입,list 형태)
a_list = deque('asd')
=> ['a','s','d']
*아래부터 a_list는 ['a','s','d'] 로 일정하다는 가정으로 설명함.
3. a_list.append(k) : 뒤에 k를 추가
a_list.appendleft(h) : 앞에 h를 추가
2. a_list.append(k) : 뒤에 k를 추가
=> ['a','s','d','k']
a_list.appendleft(h) : 앞에 h를 추가
=> ['h','a','s','d']
4. .pop() : 맨 오른쪽 값을 돌려주고 리스트에서 삭제
.popleft() : 맨 왼쪽 값을 돌려주고 리스트에서 삭제
a_list.pop()
['a','s']
a_list.popleft()
['s','d']
5. a_list.extend() : ()안의 요소를 오른쪽에 붙여서 합친다. 괄호안은(str 타입,list 형태)
a_list.extendleft() : ()안의 요소를 왼쪽에 붙여서 합친다.
a_list = deque('asd')
=> ['a','s','d']
a_list.extend('7') <--그냥 숫자 7 넣으면 typeError
=> ['a','s','d','7']
b_list = [99]
a_list.extendleft(b_list) <-- 리스트를 합치면 int 값이 들어간다.
=> [99,'a','s','d']
print(a_list[0] + 1)
=> 100
6. 일반 리스트 문법인 .insert( , ) , .remove( ) 사용가능
a_list.insert( , ) : 쉼표 앞엔 값이 들어갈 index, 뒤엔 넣을 값
a_list.remove('a') : 괄호 안의 값을 찾아 지움, 같은 값이면 왼쪽꺼 1개 지움
a_list.insert(2,'k') : 2번 index에 'k' 삽입
=> ['a','s,'k','d']
a_list.remove('s')
=> ['a','d']
7. a_list.reverse() : 내용 좌우 반전
a_list.reverse()
=> ['d','s','a']
8. a_list.clear() : 다 지우기
a_list.clear()
=> []
9. a_list.rotate(n) : n만큼 요소를 회전시킨다.
a_list.rotate(n) : 오른쪽으로 n칸 밀어서 맨 오른쪽값을 왼쪽에 붙이기
a_list.rotate(-n) : 왼쪽으로 n칸 밀어서 맨 왼쪽값을 오른쪽에 붙이기
a_list = deque('asd')
=> ['a','s','d']
a_list.rotate(1)
=> ['d','a','s']
a_list.rotate(-1)
=> ['s','d','a']
'python' 카테고리의 다른 글
[자료구조] 파이썬 스택(stack) 총정리 (3) | 2021.06.21 |
---|---|
파이썬 collections 모듈 Counter 사용법 (0) | 2021.06.20 |
람다(lambda) 총 정리, key sort, key 정렬 (0) | 2021.05.14 |
[Python] 파이썬 모듈 총정리 if __name__=="__main__" (0) | 2021.04.29 |
파이썬 유용한 외부 패키지 모음 (0) | 2021.04.20 |
댓글