728x90
deque
스택은 후입선출, 큐는 선입선출의 특징을 가지고 있고 이는 deque를 이용하여 사용가능함
선언
from collections import deque
a = [i for i in range(10)]
a = deque(a)
b = deque('hello python')
print(a, b)
deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) deque(['h', 'e', 'l', 'l', 'o', ' ', 'p', 'y', 't', 'h', 'o', 'n'])
pop()
스택은 후입선출이기 때문에 마지막에 들어있는 데이터가 출력됨
from collections import deque
a = [i for i in range(10)]
a = deque(a)
b = deque('hello python')
print(a.pop(), b.pop())
9 n
popleft()
마지막에 들어있는 데이터가 아닌 처음에 들어간 데이터를 출력하기 위해 사용함
from collections import deque
a = [i for i in range(10)]
a = deque(a)
b = deque('hello python')
print(a.popleft(), b.popleft())
append()
뒷부분에 데이터를 삽입하기 위해 사용함
from collections import deque
a = [i for i in range(10)]
a = deque(a)
a.append(100)
print(a)
deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 100])
appendleft()
처음 부분에 데이터를 삽입하기 위해 사용함
from collections import deque
a = [i for i in range(10)]
a = deque(a)
a.appendleft(100)
print(a)
expend()
오른쪽에 확장함
from collections import deque
a = deque([i for i in range(10)])
b = deque([i for i in range(10, 20)])
a.extend(b)
print(a)
deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19])
expednleft()
왼쪽에 확장함(10 ~ 19로 확장되는 것이 아니라 19 ~ 10로 확장됨)
from collections import deque
a = deque([i for i in range(10)])
b = deque([i for i in range(10, 20)])
a.extendleft(b)
print(a)
deque([19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
insert()
원하는 인덱스에 원소 넣기
from collections import deque
a = deque([i for i in range(10)])
a.insert(0,'add')
print(a)
deque(['add', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
remove()
모든 원소를 삭제하는 것이 아는 제일 앞에 있는 원소를 삭제함
from collections import deque
a = deque([i for i in range(10)])
a.insert(2,0)
print(a)
a.remove(0)
print(a)
deque([0, 1, 0, 2, 3, 4, 5, 6, 7, 8, 9])
deque([1, 0, 2, 3, 4, 5, 6, 7, 8, 9])
reverse()
from collections import deque
a = deque([i for i in range(10)])
a.reverse()
print(a)
deque([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])
rotate()
함수 안에 양수를 넣으면 오른쪽 회전, 음수를 넣으면 왼쪽 회전이고 수 만큼 rotate한다.
from collections import deque
test = [1, 2, 3, 4, 5, 6, 7, 8, 9]
test = deque(test)
test.rotate(3)
result = list(test)
print(result)
[7, 8, 9, 1, 2, 3, 4, 5, 6]
from collections import deque
test = [1, 2, 3, 4, 5, 6, 7, 8, 9]
test = deque(test)
test.rotate(-3)
result = list(test)
print(result)
[4, 5, 6, 7, 8, 9, 1, 2, 3]
728x90
'Python > 이론, 기초' 카테고리의 다른 글
[Python] map에서 lambda 쓰기 (0) | 2023.05.01 |
---|---|
[Python] 딕셔너리 정렬하기 (0) | 2023.05.01 |
[Python] 파이썬 슬라이스 [::] 사용법 (0) | 2023.03.22 |
[Python] 파이썬 아스키코드(ASCII) (0) | 2023.03.22 |
[Python] Set 정리 사용법 (0) | 2023.03.10 |