파이썬 집합 자료형: 연산자 및 함수
파이썬의 set 자료형은 중복을 허용하지 않고 순서가 없습니다. 이 특성 덕분에 교집합·합집합·차집합 같은 집합 연산을 간단히 처리할 수 있습니다. 아래에서 연산자와 주요 메서드(함수)를 정리합니다.
교집합, 합집합, 차집합 구하기
연산자(&, |, -)와 대응 메서드(intersection, union, difference)를 제공합니다.
예시
s1 = {1, 2, 3}
s2 = {2, 3, 4}
# 교집합
intersection = s1 & s2
print(intersection) # 출력: {2, 3}
# 교집합 함수 사용
print(s1.intersection(s2)) # 출력: {2, 3}
# 합집합
union = s1 | s2
print(union) # 출력: {1, 2, 3, 4}
# 합집합 함수 사용
print(s1.union(s2)) # 출력: {1, 2, 3, 4}
# 차집합
difference = s1 - s2
print(difference) # 출력: {1}
# 차집합 함수 사용
print(s1.difference(s2)) # 출력: {1}실행 결과

집합 자료형 관련 함수
원소 추가·삭제 등 집합을 다룰 때 자주 쓰는 메서드를 정리했습니다.
1. add(): 원소 추가
단일 원소를 추가합니다. 이미 존재하면 변화가 없습니다.
예시
s = {1, 2, 3}
s.add(4)
print(s) # {1, 2, 3, 4}
s.add(1)
print(s) # {1, 2, 3, 4}2. update(): 여러 원소 추가
리스트·튜플·집합 등 iterable을 받아 여러 값을 한 번에 추가합니다.
예시
s = {1, 2, 3}
s.update([4, 5, 6])
print(s) # {1, 2, 3, 4, 5, 6}
s.update((7, 8, 9))
print(s) # {1, 2, 3, 4, 5, 6, 7, 8, 9}3. remove(): 원소 삭제
KeyError를 발생시킵니다(대상이 없을 때 예외).
예시
s = {1, 2, 3}
s.remove(1)
print(s) # {2, 3}
s.remove(4) # KeyError 발생실행 결과

4. discard(): 원소 삭제
remove()와 달리, 대상이 없어도 에러가 발생하지 않습니다.
예시
s = {1, 2, 3}
s.discard(1)
print(s) # {2, 3}
s.discard(4)
print(s) # {2, 3}실행 결과

5. clear(): 집합 비우기
모든 원소를 삭제해 set()을 반환합니다.
예시
s = {1, 2, 3}
s.clear()
print(s) # set()실행 결과

추가 팁
- 부분집합/상위집합 검사:
a <= b,a.issubset(b)/a >= b,a.issuperset(b) - 대칭차집합(서로 다른 원소만):
a ^ b또는a.symmetric_difference(b) - 불변 집합: 변경 불가능한
frozenset도 제공됩니다(딕셔너리 키 등으로 활용).
참고 자료
- 파이썬 공식 문서: 집합 자료형 (https://docs.python.org/3/library/stdtypes.html#set-types-set-frozenset)
함께 보면 좋은 이전 게시글
- 파이썬 집합 자료형: 생성 방법 및 특징
- 파이썬 리스트 연산: 리스트 간의 덧셈, 곱셈 및 수정, 삭제
- 파이썬 딕셔너리의 주요 함수: keys, values, items, clear, get, in
- 파이썬에서 데이터 타입 변환하기: int(), float(), str() 함수 사용법
- 파이썬 리스트 관련 함수들: 내장 함수를 활용한 리스트 관리
이 글이 도움이 되셨다면 공유 부탁 드립니다.



