python

[자료구조] 파이썬 큐(Queue), deque 사용법 총정리

고로케 2021. 6. 19.
반응형

큐(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']

 

 

반응형

댓글