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

[파이썬][초급] Chapter34. 집합 활용 심화

by about_IT 2025. 5. 16.
728x90

집합(set)은 중복을 허용하지 않고, 순서가 없는 자료형입니다. 집합은 수학적 집합 연산을 지원하며, 중복 제거, 빠른 검색, 연산 처리 등에서 유용하게 사용됩니다. 이번 장에서는 집합의 고급 기능과 활용 예제를 살펴봅니다.

● 집합 연산

파이썬 집합은 수학에서의 집합 연산을 그대로 사용할 수 있습니다.

a = {1, 2, 3}
b = {3, 4, 5}

print(a | b)  # 합집합: {1, 2, 3, 4, 5}
print(a & b)  # 교집합: {3}
print(a - b)  # 차집합: {1, 2}
print(a ^ b)  # 대칭차집합: {1, 2, 4, 5}

● 집합 메서드

집합은 다음과 같은 메서드를 제공합니다.

  • add(x): 항목 추가
  • update(이터러블): 여러 항목 추가
  • remove(x): 항목 제거 (없으면 오류)
  • discard(x): 항목 제거 (없어도 오류 없음)
  • clear(): 전체 항목 제거
s = {1, 2}
s.add(3)
s.update([4, 5])
s.remove(2)
print(s)  # {1, 3, 4, 5}

● 집합을 활용한 중복 제거

리스트에서 중복된 값을 제거할 때 집합을 사용할 수 있습니다.

nums = [1, 2, 2, 3, 3, 3]
unique = list(set(nums))
print(unique)  # [1, 2, 3]

● 집합의 활용 예시

두 문자열에서 중복되지 않는 문자만 추출해보겠습니다.

a = set("python")
b = set("java")
print(a ^ b)  # {'v', 'n', 'p', 'y', 'j', 'o', 'h'}

● frozen set

frozenset()은 변경이 불가능한 집합으로, 딕셔너리 키 등 불변 자료형이 필요한 경우 사용됩니다.

fs = frozenset([1, 2, 3])
# fs.add(4)  # 오류 발생: 변경 불가

● 마무리

이번 장에서는 집합의 연산, 메서드, 중복 제거 활용, frozen set 등 고급 기능을 학습했습니다. 집합은 간단한 자료 처리뿐 아니라 복잡한 연산에도 매우 유용한 도구입니다. 다음 장에서는 bool과 None 같은 특수 자료형에 대해 배워보겠습니다.

728x90