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
'프로그래밍언어 > 파이썬[중급]' 카테고리의 다른 글
[파이썬][중급] Chapter19. XML과 YAML 다루기 (0) | 2025.05.23 |
---|---|
[파이썬][중급] Chapter18. CSV, JSON 고급 처리 (0) | 2025.05.23 |
[파이썬][중급] Chapter16. heapq와 우선순위 큐 (0) | 2025.05.23 |
[파이썬][중급] Chapter14. collections 모듈 (deque, Counter 등) (0) | 2025.05.18 |
[파이썬][중급] Chapter13. itertools 모듈 활용법 (0) | 2025.05.18 |