파이썬 집합 자료형: 연산자 및 함수

파이썬 집합 자료형: 연산자 및 함수

파이썬의 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 발생

실행 결과

remove() 원소 삭제 예시 실행 결과 화면입니다.

4. discard(): 원소 삭제

remove()와 달리, 대상이 없어도 에러가 발생하지 않습니다.

예시

s = {1, 2, 3}
s.discard(1)
print(s)    # {2, 3}

s.discard(4)
print(s)    # {2, 3}

실행 결과

discard() 원소 삭제 예시 실행 결과 화면입니다.

5. clear(): 집합 비우기

모든 원소를 삭제해 set()을 반환합니다.

예시

s = {1, 2, 3}
s.clear()
print(s)    # set()

실행 결과

clear() 집합 비우기 예시 실행 결과 화면입니다.

추가 팁

  • 부분집합/상위집합 검사: a <= b, a.issubset(b) / a >= b, a.issuperset(b)
  • 대칭차집합(서로 다른 원소만): a ^ b 또는 a.symmetric_difference(b)
  • 불변 집합: 변경 불가능한 frozenset도 제공됩니다(딕셔너리 키 등으로 활용).

참고 자료

함께 보면 좋은 이전 게시글

이 글이 도움이 되셨다면 공유 부탁 드립니다.

위로 스크롤