알고리즘
[도서] Python Tricks The Book 슬기로운 파이썬 트릭
hyeon1212
2023. 4. 26. 17:31
파이썬의 자료구조
1. 딕셔너리, 맵, 해시 테이블
- 주어진 키와 연관된 객체가 효율적으로 처리됨
dict(), {} -> 시간복잡도 O(1)
2. 배열 데이터 구조
list : 가변적 동적 변형
tuple : 객체 변경 불가능
3. 자료구조 사용
stack : list에서 append : O(1), pop :O(n) 이용 < collections.deque 이용
queue : collections.deque 이용(이중 연결리스트로 구현)하면 어느쪽에서든지 O(1)
heap : O(logn) heapq의 heappush(q, 값) 또는 heappop(q) 이용
객체 복사
- 깊은 복사
- 얉은 복사 : 새 객체 생성 후 원본 객체의 자식에 대한 참조로 채움
xs = [[1],[2]]
# 얕은 복사 : xs에 값이 추가된다고 변하지는 않으나, ys 자식 객체가 수정시에는 같이 변동
ys = list(xs)
# 깊은 복사 : 원본과 독립적
import copy
zs = copy.deepcopy(xs)