add, remove, update, &, |, -

집합 메서드

메서드 설명 예시
add(값) 요소 하나를 집합에 추가 s.add(4)
remove(값) 집합에서 요소 하나를 제거 (없으면 오류) s.remove(2)
update(반복가능객체) 여러 요소를 집합에 한 번에 추가 s.update([5, 6, 7])
discard(값) 요소 제거 (없어도 오류 없음) s.discard(10)

튜플은 불변이라 원소 추가/삭세/수정 메서드가 아예 없다.

가변인 list, set, dict, deque를 보자

파이썬 주요 컬렉션의 추가 메서드

컬렉션 추가 메서드 예시 특징
set .add(x) s.add(5) 원소 하나 추가
list .append(x) lst.append(5) 끝에 하나 추가
dict d[k] = v d[5] = "a" 메서드 아니라 키 할당
deque .append(x) / .appendleft(x) dq.append(5) 양쪽 다 가능
  1. set에 append 쓰면 에러 2. list에 add 쓰면 에러 (반대도 마찬가지) 3. 여러 개를 한 번에 넣기 — 메서드가 또 달라
하나 추가 여러 개 추가
list .append(x) .extend([a,b,c])
set .add(x) .update([a,b,c])

정리 표

연산 list deque
뒤에 추가 append O(1) append O(1)
뒤에서 제거 pop() O(1) pop() O(1)
앞에 추가 insert(0,x) O(n) appendleft O(1)
앞에서 제거 pop(0) O(n) popleft O(1)
인덱스 접근 dq[3] O(1) O(n) ← deque 약점

그러면 직접 수정하는건 add, remove, update, discard 뿐인가?

정확하게 봐보자.

add, remove, discard는 set의 함수이고, pop, clear도 사용할 수 있다.

union | → update |=

intersection & → intersection_update &=

difference - → difference_update -=

symmetric_difference ^ → symmetric_difference_update ^=