반응형
집합(set)은 중복을 허용하지 않고, 순서가 없는 데이터 구조입니다. 파이썬의 집합은 수학에서의 집합과 유사하게 동작하며, 다양한 집합 연산을 제공합니다.
1. 집합 생성
집합은 중괄호 {} 또는 set() 함수를 사용하여 생성할 수 있습니다.
# 중괄호를 사용하여 집합 생성
my_set = {1, 2, 3, 4, 5}
print(my_set)
# set() 함수를 사용하여 리스트를 집합으로 변환
my_set2 = set([1, 2, 3, 2, 1])
print(my_set2) # {1, 2, 3} (중복 제거)
2. 집합의 주요 특징
- 중복이 자동으로 제거됨: 같은 요소가 여러 번 있어도 한 번만 저장됨.
- 순서가 없음: 인덱싱이 불가능하여 위치 기반 접근이 불가.
- mutable(변경 가능)하지만, 내부 요소는 immutable해야 함: 리스트나 딕셔너리는 집합의 요소로 사용 불가.
3. 집합 연산
집합은 수학적 개념의 연산을 제공하여, 교집합, 합집합, 차집합 등을 쉽게 처리할 수 있습니다.
✅ 합집합 (| 또는 union())
A = {1, 2, 3}
B = {3, 4, 5}
print(A | B) # {1, 2, 3, 4, 5}
print(A.union(B)) # 동일한 결과
✅ 교집합 (& 또는 intersection())
print(A & B) # {3}
print(A.intersection(B)) # 동일한 결과
✅ 차집합 (- 또는 difference())
print(A - B) # {1, 2}
print(A.difference(B)) # 동일한 결과
✅ 대칭 차집합 (^ 또는 symmetric_difference())
print(A ^ B) # {1, 2, 4, 5}
print(A.symmetric_difference(B)) # 동일한 결과
4. 집합의 주요 메서드
my_set = {1, 2, 3}
# 요소 추가
my_set.add(4)
print(my_set) # {1, 2, 3, 4}
# 요소 삭제
my_set.remove(2)
print(my_set) # {1, 3, 4}
# 요소 임의 삭제
my_set.pop()
print(my_set) # 어떤 요소가 삭제될지 예측할 수 없음
# 전체 비우기
my_set.clear()
print(my_set) # set()
5. 집합의 활용 예시
집합을 활용하면 리스트에서 중복 제거가 쉽습니다.
my_list = [1, 2, 2, 3, 3, 4]
unique_list = list(set(my_list))
print(unique_list) # [1, 2, 3, 4]
6. 마무리
이번 문서에서는 집합(set)의 개념과 활용 방법을 학습했습니다.
✅ 핵심 요약
- 집합은 중복을 허용하지 않고 순서가 없는 자료형
- |, &, -, ^ 연산자를 사용하여 집합 연산 수행 가능
- add(), remove(), pop(), clear() 등의 메서드를 활용 가능
- 리스트에서 중복 제거 시 유용하게 활용 가능
반응형
'IT > Python Basic' 카테고리의 다른 글
[Python] 초급 개념12 - 리스트 컴프리헨션 (0) | 2025.02.18 |
---|---|
[Python] 초급 개념11 - 문자열 다루기 (split, join, format 등) (0) | 2025.02.18 |
[Python] 초급 개념10 - 예외 처리 (try-except) (0) | 2025.02.18 |
[Python] 초급 개념9 - 파일 입출력 (I/O) (0) | 2025.02.18 |
[python] (부록)파이썬의 a for b in range(c) 문법 (0) | 2025.02.18 |
[Python] 초급 개념7 - 딕셔너리 (dict) (0) | 2025.02.18 |
[Python] 초급 개념6 - 튜플 (tuple) (0) | 2025.02.17 |
[Python] 초급 개념5 - 리스트 (list) (0) | 2025.02.17 |
댓글