프로그래밍언어/파이썬[초급]
[파이썬][초급] 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