deque ์ด๋?
deque(๋ฑ)๋ ํ์ด์ฌ์ collections ๋ชจ๋์์ ์ ๊ณตํ๋ ์๋ฐฉํฅ ํ๋ก, ๋ฆฌ์คํธ์ ์ ์ฌํ์ง๋ง ์์ชฝ ๋์์ ๋น ๋ฅธ ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ๊ฐ๋ฅํ๋ค. ๋ฆฌ์คํธ์ ๋น๊ตํด ์๊ฐ ๋ณต์ก๋๊ฐ ๋ ํจ์จ์ ์ด๊ธฐ ๋๋ฌธ์, ์์ชฝ์์ ๋ฐ์ดํฐ๋ฅผ ์์ฃผ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ๋ ๊ฒฝ์ฐ deque๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
deque ์ฌ์ฉ๋ฒ
๋จผ์ collections ๋ชจ๋์์ deque๋ฅผ importํ๋ค.
from collections import deque
1๏ธโฃ 1. deque ์์ฑ
dq = deque([1, 2, 3, 4, 5])
print(dq)
์ถ๋ ฅ ๊ฒฐ๊ณผ
deque([1, 2, 3, 4, 5])
2๏ธโฃ 2. ์์ ์ถ๊ฐ
- ์ค๋ฅธ์ชฝ ๋์ ์์ ์ถ๊ฐ: append()
- ์ผ์ชฝ ๋์ ์์ ์ถ๊ฐ: appendleft()
dq.append(6) # ์ค๋ฅธ์ชฝ์ 6 ์ถ๊ฐ
dq.appendleft(0) # ์ผ์ชฝ์ 0 ์ถ๊ฐ
print(dq)
์ถ๋ ฅ ๊ฒฐ๊ณผ
deque([0, 1, 2, 3, 4, 5, 6])
3๏ธโฃ 3. ์์ ์ ๊ฑฐ
- ์ค๋ฅธ์ชฝ ๋ ์์ ์ ๊ฑฐ: pop()
- ์ผ์ชฝ ๋ ์์ ์ ๊ฑฐ: popleft()
dq.pop() # ์ค๋ฅธ์ชฝ ๋ ์์ ์ ๊ฑฐ (6)
dq.popleft() # ์ผ์ชฝ ๋ ์์ ์ ๊ฑฐ (0)
print(dq)
์ถ๋ ฅ ๊ฒฐ๊ณผ
deque([1, 2, 3, 4, 5])
4๏ธโฃ 4. deque์ ๋ค๋ฅธ ๋ฉ์๋
- ํ์ฅ: ์ฌ๋ฌ ์์๋ฅผ ์ถ๊ฐํ ๋ extend()์ extendleft()๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
- ํ์ : rotate(n)์ ์ฌ์ฉํด n๋งํผ ์์๋ฅผ ํ์ ํ ์ ์๋ค.
dq.extend([6, 7]) # ์ค๋ฅธ์ชฝ ๋์ [6, 7] ์ถ๊ฐ
dq.extendleft([-1, -2]) # ์ผ์ชฝ ๋์ [-1, -2] ์ถ๊ฐ
print(dq) # ์ถ๋ ฅ: deque([-2, -1, 1, 2, 3, 4, 5, 6, 7])
dq.rotate(2) # ์ค๋ฅธ์ชฝ์ผ๋ก 2์นธ ํ์
print(dq) # ์ถ๋ ฅ: deque([6, 7, -2, -1, 1, 2, 3, 4, 5])
5๏ธโฃ 5. ์ต๋ ๊ธธ์ด ์ง์
deque๋ ์ต๋ ๊ธธ์ด๋ฅผ ์ค์ ํ ์ ์์ผ๋ฉฐ, ์ค์ ๋ ๊ธธ์ด๋ฅผ ์ด๊ณผํ ๊ฒฝ์ฐ ์๋์ผ๋ก ์ค๋๋ ์์๋ฅผ ์ ๊ฑฐํ๋ค.
dq = deque([1, 2, 3, 4, 5], maxlen=5)
dq.append(6) # 6์ ์ถ๊ฐํ๋ฉด ์ผ์ชฝ ๋์ 1์ด ์ ๊ฑฐ๋จ
print(dq)
์ถ๋ ฅ ๊ฒฐ๊ณผ
deque([2, 3, 4, 5, 6])
์์ฝ
- deque๋ ์์ชฝ ๋์์์ ๋น ๋ฅธ ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ๊ฐ๋ฅํ๋ฉฐ, ํ์ ์คํ์ ๊ธฐ๋ฅ์ ๋ชจ๋ ์ ๊ณตํ๋ค.
- append(), appendleft(), pop(), popleft() ๋ฑ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์์๋ฅผ ํจ์จ์ ์ผ๋ก ์ถ๊ฐ ๋ฐ ์ ๊ฑฐํ ์ ์๋ค.
- rotate() ๋ฉ์๋๋ก ํ์ ํ ์๋ ์์ผ๋ฉฐ, maxlen์ ์ค์ ํด ๊ณ ์ ๋ ํฌ๊ธฐ์ ๋ฑ์ ์ฌ์ฉํ ์ ์๋ค.
- deque๋ ํ, ์คํ, ์ฌ๋ผ์ด๋ฉ ์๋์ฐ ๋ฑ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ ๋งค์ฐ ์ ์ฉํ๋ค.
'๐ฌ Explore > ํ์ด์ฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [ํ์ด์ฌ] set() (์งํฉ ํจ์) (0) | 2024.10.24 |
|---|---|
| [ํ์ด์ฌ] replace() ๋ฉ์๋ (0) | 2024.10.22 |
| [ํ์ด์ฌ] ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์ (1) | 2024.10.21 |
| [Python] sort, sorted, ์ ๋ ฌ, ์ด์ค ๋ฆฌ์คํธ ์ ๋ ฌ (0) | 2023.10.31 |
| ํ์ด์ฌ ์ค์นํ๋ ๋ฐฉ๋ฒ(1) (Windows ์ ์ฉ) (0) | 2022.08.31 |