프로그래밍언어/파이썬[초급]

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

about_IT 2025. 5. 16. 16:22
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