1. 세트(Set) 자료형
- 파이썬 세트 자료형은 중복을 허용하지 않고, 순서가 없는 자료형입니다(인덱싱, 슬라이싱 미지원)
- 세트 자료형에 저장된 요소는 고유해야 하고, 숫자나 문자, 튜플이 요소가 될 수 있습니다.
- 세트 자료형을 선언하는 방법은 2가지가 있는데, 'set()' 함수 또는 중괄호 '{}'를 사용하여 생성할 수 있습니다. 빈 집합을 생성할 때는 반드시 'set()' 함수를 사용해야 합니다.
- 아래 코드블럭에서 세트 자료형 선언 예시를 살펴보겠습니다.
# 세트 생성
my_set = set()
# 세트 생성
my_set2 = {1, 2, 3, 4, 5}
# 세트 생성 및 자동 중복요소 제거
my_set3 = set([1, 2, 2, 3, 3, 4])
print(my_set3) # {1,2,3,4} 출력
2. 세트 자료형을 사용하는 이유
- 데이터의 중복을 제거하고 유니크한 요소만을 유지하길 원할 때
- 수학적으로 집합 연산을 수행하고자 할 때
- 요소의 존재 유뮤를 빠르게 확인하고자 할 때(세트 자료형은 요소 검색에 해시 테이블 사용)
3. 집합연산
- 합집합(union): 두 집합의 모든 요소를 포함하는 집합을 반환합니다. 메서드 '.union()' 또는 연산자 '|'를 사용합니다.
a = {1, 2, 3}
b = {3, 4, 5}
print(a | b) # {1, 2, 3, 4, 5}
print(a.union(b)) # {1, 2, 3, 4, 5}
- 교집합(intersection): 두 집합에 공통으로 포함된 요소만을 포함하는 집합을 반환합니다. 메서드 '.intersection()' 또는연산자 '&'을 사용합니다.
a = {1, 2, 3}
b = {3, 4, 5}
print(a & b) # {3}
print(a.intersection(b)) # {3}
- 차집합(difference): 한 집합에는 포함되지만 다른 집합에는 포함되지 않는 요소들의 집합을 반환합니다. 먼저 나온 집합이 기준이 됩니다. 메서드 '.difference()' 또는 연산자 '-'를 사용합니다.
a = {1, 2, 3}
b = {3, 4, 5}
print(a - b) # {1, 2}
print(a.difference(b)) # {1, 2}
- 대칭차집합(symmetric difference): 두 집합 중 하나에는 포함되지만 두 집합 둘 다에는 포함되지 않는 요소들의 집합을 반환합니다. 메서드 '.symmetric_difference()' 또는 연산자 '^'를 사용합니다.
a = {1, 2, 3}
b = {3, 4, 5}
print(a ^ b) # {1, 2, 4, 5}
print(a.symmetric_difference(b)) # {1, 2, 4, 5}
4. 세트 자료형의 메서드
- .add(): 세트에 요소를 추가
- .discard(): 세트에서 요소를 제거. 요소가 세트에 없어도 에러 발생하지 않음
- .remove(): 세트에서 요소를 제거. 요소가 세트에 없으면 'Keyerror' 발생
- .pop(): 세트에서 하나의 요소를 제거하고 반환(순서는 없지만 가장 앞에 있는 요소). 세트가 비어있으면 'Keyerror' 발생
# 세트 선언
my_set = {1, 2, 3}
# add() 사용 예시: 세트에 요소 추가
my_set.add(4)
print(my_set) # {1, 2, 3, 4} 반환
# discard() 사용 예시: 세트에서 요소 제거 (없는 요소를 제거해도 에러 발생하지 않음)
my_set.discard(2)
print(my_set) # {1, 2, 3} 반환
my_set.discard(10) # 에러 발생하지 않음
# remove() 사용 예시: 세트에서 요소 제거 (없는 요소를 제거하려 하면 KeyError 발생)
my_set.remove(4) # 이 줄을 실행하면 KeyError 발생
# pop() 사용 예시: 세트에서 하나의 요소를(순서는 없지만 가장 앞) 제거하고 반환
print(my_set.pop()) # 1 반환
'Python' 카테고리의 다른 글
[Python] 우선순위큐 구현 - 파이썬 heapq 모듈 (0) | 2024.03.31 |
---|---|
[Python] 리스트 내 특정 요소 개수 반환 - count() 메서드 (0) | 2024.03.29 |
[Python] 파이썬 프로그램 실행 시간 측정 - time 모듈 (0) | 2024.03.26 |
[Python] 특정 값이 처음으로 나타나는 인덱스 반환 - index() (0) | 2024.03.09 |
[Python] 원하는 기준으로 이차원 배열 정렬 - sort(), sorted() 및 람다함수 (2) | 2024.03.01 |