### 예시
arr = [1, 2, 3, 4, 5]
arr[1] = 2
### 예시
v = []
v.append((1, 2))
v.append((3, 4))
print('size:', len(v))
for p in v:
print(p) # 2, 2
### 예시
s = []
s.append(1)
s.append(2)
s.append(3)
print('size:', len(s))
while len(s) > 0:
print(s[-1])
s.pop(-1) # s.pop()도 가능, 리스트상 맨 뒤의 값을 제거
# 3, 2, 1
### 예시
### deque: Double-ended Queue, 앞뒤로 데이터를 모두 빼고 넣고 할 수 있다.
from collections import deque
q = deque()
q.append(1) # q.appendleft(1): 앞에 넣을 수 있다.
q.append(2)
q.append(3)
print('size:', len(q))
while len(q) > 0:
print(q.popleft()) # q.pop(): 뒤의 데이터가 빠질 수 있다.
※ Queue 모듈 사용가능하나 멀티스레드 환경에서 안정성을 위한 기능도 있어 deque보다 느리다.
### 예시
from queue import Queue
q = Queue()
q.put(1)
q.put(2)
q.put(3)
while q:
print(q.get())
### 예시
import heapq as hq
pq = []
hq.heappush(pq, 4)
hq.heappush(pq, -3)
hq.heappush(pq, 8)
hq.heappush(pq, 0)
hq.heappush(pq, 11)
hq.heappush(pq, -7)
while len(pq) > 0:
print(pq[0]) # root node 값을 볼 수 있다.
hq.heappop(pq)
※ PriorityQueue 모듈 사용가능하나 멀티스레드 환경에서 안정성을 위한 기능도 있어 heapq보다 느리다.
### 예시
from queue import PriorityQueue
pq = PriorityQueue()
pq.put(-6)
pq.put(7)
pq.put(1)
pq.put(4)
pq.put(-2)
pq.put(3)
while not pq.empty():
print(pq.get()) # pop과 같은 역할을 한다. (빠진값이 먼지 반환까지 한다.)
### 예시
m = {}
m['apple'] = 50
m['banana'] = 120
m['orange'] = 30
print('size:', len(m))
for k in m:
print(k, m[k])
### 예시
s = set()
s.add(1)
s.add(2)
s.add(3)
s.add(4)
s.add(5)
s.add(1)
print('size:', len(s)) # 5
for i in s:
print(i)
s.pop() # pop을 이용하여 삭제시 빠진 값은 랜덤이다.
s.remove(1) # 특정 값을 뺄때는 remove를 사용한다.