본문 바로가기
프로그래밍언어/파이썬[중급]

[파이썬][중급] Chapter17. set의 고급 활용

by about_IT 2025. 5. 23.
728x90

파이썬의 set 자료형은 중복을 허용하지 않고, 수학적 집합 연산을 손쉽게 수행할 수 있도록 해주는 유용한 도구입니다. 이 장에서는 집합의 고급 연산과 효율적인 활용 방법에 대해 살펴보겠습니다.


● 집합 기본 특성 복습

  • 중복이 자동으로 제거됩니다.
  • 순서가 없기 때문에 인덱스로 접근할 수 없습니다.
  • mutable 자료형이며, 원소 추가/삭제가 가능합니다.
s = set([1, 2, 2, 3])
print(s)  # {1, 2, 3}

● 집합 연산

파이썬에서는 수학적 집합 연산을 지원하며, 다음과 같은 연산자가 있습니다.

  • & 또는 intersection(): 교집합
  • | 또는 union(): 합집합
  • - 또는 difference(): 차집합
  • ^ 또는 symmetric_difference(): 대칭차집합
a = {1, 2, 3}
b = {3, 4, 5}
print(a & b)  # {3}
print(a | b)  # {1, 2, 3, 4, 5}
print(a - b)  # {1, 2}
print(a ^ b)  # {1, 2, 4, 5}

● 부분 집합, 상위 집합 판단

a = {1, 2}
b = {1, 2, 3}
print(a.issubset(b))   # True
print(b.issuperset(a)) # True

이러한 메서드를 활용하면 포함 관계를 쉽게 판단할 수 있습니다.


● 집합의 활용 예

  • 리스트에서 중복 제거: list(set(list))
  • 두 컬렉션의 공통 요소 찾기
  • 탐색 성능이 중요한 경우 set으로 변환하여 in 연산을 O(1)로 처리
items = ["a", "b", "c", "a"]
unique = set(items)
print(unique)  # {'a', 'b', 'c'}

● 마무리

집합(set)은 간단하면서도 매우 강력한 자료형입니다. 수학적 연산뿐만 아니라 실전 데이터 분석, 중복 제거, 교차 집합 필터링 등에서도 유용하게 쓰이므로 꼭 익혀두시기 바랍니다.

728x90