알고리즘

[도서] 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)