파이썬 자료구조

2024. 10. 8. 19:33·Python
반응형

1. 리스트(list)

  • 인덱스 접근 []: O(1)
  • append(): O(1)
  • pop() (맨 끝 요소 제거): O(1)
  • pop(i) (임의 위치 i에서 제거): O(n)
  • insert(i, x): O(n)
  • del del list[i]:
    • 마지막 요소 제거: O(1)
    • 임의 위치에서 제거: O(n)
  • remove(x): O(n) (값을 찾기 위한 선형 탐색 필요)
  • index(x): O(n)
  • sort(): O(nlog⁡n)
  • reverse(): O(n)
  • len(): O(1)
  • 슬라이싱 list[start:end]: O(k) (슬라이싱되는 길이에 비례)

2. 딕셔너리(dict)

  • 인덱스 접근 d[key]: O(1)
  • 삽입 및 업데이트 d[key] = value: O(1)
  • 삭제 del d[key]: O(1)
  • get(key): O(1)
  • pop(key): O(1)
  • keys(): O(n) (모든 키를 반환)
  • values(): O(n) (모든 값을 반환)
  • items(): O(n) (키-값 쌍을 반환)
  • len(): O(1)

3. 세트(set)

  • 삽입 s.add(x): O(1)
  • 삭제 s.remove(x): O(1)
  • 탐색 x in s: O(1)
  • 교집합 s1 & s2: O(min(len(s1),len(s2)))
  • 합집합 s1 | s2: O(len(s1)+len(s2))
  • 차집합 s1 - s2: O(len(s1))
  • 대칭차집합 s1 ^ s2: O(len(s1)+len(s2))

4. 튜플(tuple)

  • 인덱스 접근 t[i]: O(1)
  • count(x): O(n)
  • index(x): O(n)
  • len(): O(1)

튜플은 불변(immutable) 자료구조로, 리스트와 유사하지만 요소를 변경할 수 없다는 점에서 리스트와 다르다.

5. deque (collections.deque)

  • append() (끝에 요소 추가): O(1)
  • appendleft() (앞에 요소 추가): O(1)
  • pop() (끝에서 요소 제거): O(1)
  • popleft() (앞에서 요소 제거): O(1)
  • extend(iterable): O(k)(길이에 비례)
  • extendleft(iterable): O(k)
  • rotate(n): O(n) (n번 회전)
  • len(): O(1)
반응형
저작자표시 비영리 변경금지 (새창열림)

'Python' 카테고리의 다른 글

mutable(변경 가능)과 immutable(변경 불가능)  (0) 2024.10.02
파이썬 | functools.wraps  (1) 2022.10.03
파이썬 | Type Hints, 타입 지정하기  (0) 2022.09.24
파이썬 | max, sorted,...의 key사용  (0) 2022.07.14
파이썬 | for 요소 in 리스트  (0) 2022.07.14
'Python' 카테고리의 다른 글
  • mutable(변경 가능)과 immutable(변경 불가능)
  • 파이썬 | functools.wraps
  • 파이썬 | Type Hints, 타입 지정하기
  • 파이썬 | max, sorted,...의 key사용
이라후
이라후
  • 이라후
    화이팅
    이라후
  • 전체
    오늘
    어제
    • 분류 전체보기 (133)
      • TIL (23)
      • 기타 (26)
      • Python (14)
      • Django (10)
      • JavaScript (8)
      • git & GitHub (8)
      • Web (10)
      • Go (3)
      • wecode (31)
  • 반응형
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
이라후
파이썬 자료구조
상단으로

티스토리툴바