6.4. 집합
집합(Set)은 중복되지 않는 순서 없는 항목들의 모음입니다. 파이썬의 집합은 수학적 집합의 성질을 가지며, 집합 연산(합집합, 교집합, 차집합 등)을 지원합니다.
6.4.1. 집합 생성과 연산
집합은 중괄호 {} 또는 set() 함수를 사용하여 생성할 수 있습니다.
- 집합 생성
set_a = {1, 2, 3, 4, 5}
set_b = set([4, 5, 6, 7, 8])
print(set_a) # {1, 2, 3, 4, 5}
print(set_b) # {4, 5, 6, 7, 8}
빈 집합을 생성할 때에는 반드시 set() 함수를 사용해야 합니다. 중괄호 {}만 사용하면 빈 딕셔너리가 생성됩니다.
empty_set = set()
print(empty_set) # set()
- 집합 연산
집합 연산은 수학적 집합의 연산과 같이 사용할 수 있습니다.
- 합집합 (Union): |
- 교집합 (Intersection): &
- 차집합 (Difference): -
- 대칭 차집합 (Symmetric Difference): ^
set_a = {1, 2, 3, 4, 5}
set_b = {4, 5, 6, 7, 8}
union_set = set_a | set_b
intersection_set = set_a & set_b
difference_set = set_a - set_b
symmetric_difference_set = set_a ^ set_b
print("Union:", union_set) # Union: {1, 2, 3, 4, 5, 6, 7, 8}
print("Intersection:", intersection_set) # Intersection: {4, 5}
print("Difference:", difference_set) # Difference: {1, 2, 3}
print("Symmetric Difference:", symmetric_difference_set) # Symmetric Difference: {1, 2, 3, 6, 7, 8}
6.4.2. 집합 메서드
파이썬 집합은 다양한 메소드를 지원하며, 이를 통해 집합의 요소를 추가, 삭제 및 검색할 수 있습니다.
- add(element) : 집합에 요소를 추가합니다. 만약 요소가 이미 집합에 존재하면 아무런 변화가 일어나지 않습니다.
fruits = {"apple", "banana", "cherry"}
fruits.add("orange")
print(fruits) # {'orange', 'cherry', 'apple', 'banana'}
- remove(element) : 집합에서 요소를 제거합니다. 만약 요소가 집합에 존재하지 않으면 KeyError가 발생합니다.
fruits = {"apple", "banana", "cherry"}
fruits.remove("banana")
print(fruits) # {'apple', 'cherry'}
- discard(element) : 집합에서 요소를 제거합니다. 만약 요소가 집합에 존재하지 않아도 아무런 에러가 발생하지 않습니다.
fruits = {"apple", "banana", "cherry"}
fruits.discard("banana")
fruits.discard("grape")
print(fruits) # {'apple', 'cherry'}
- pop() : 집합에서 임의의 요소를 제거하고 반환합니다. 집합이 비어 있으면 KeyError가 발생합니다.
fruits = {"apple", "banana", "cherry"}
popped_fruit = fruits.pop()
print(popped_fruit) # 결과는 실행할 때마다 달라질 수 있습니다.
print(fruits) # 결과는 실행할 때마다 달라질 수 있습니다.
- clear() : 집합의 모든 요소를 제거합니다.
fruits = {"apple", "banana", "cherry"}
fruits.clear()
print(fruits) # set()
- issubset(other) : 집합이 다른 집합의 부분집합인지 확인합니다. 부분집합이면 True를 반환하고, 그렇지 않으면 False를 반환합니다.
set_a = {1, 2, 3}
set_b = {1, 2, 3, 4, 5}
result = set_a.issubset(set_b)
print(result) # True
- issuperset(other) : 집합이 다른 집합의 상위집합인지 확인합니다. 상위집합이면 True를 반환하고, 그렇지 않으면 False를 반환합니다.
set_a = {1, 2, 3}
set_b = {1, 2, 3, 4, 5}
result = set_b.issuperset(set_a)
print(result) # True
- isdisjoint(other) : 두 집합이 서로 겹치는 요소가 없는지 확인합니다. 겹치는 요소가 없으면 True를 반환하고, 겹치는 요소가 있으면 False를 반환합니다.
set_a = {1, 2, 3}
set_b = {4, 5, 6}
result = set_a.isdisjoint(set_b)
print(result) # True
이처럼 파이썬의 집합은 다양한 메서드를 지원하며, 이를 활용하여 집합에 관련된 작업을 쉽게 처리할 수 있습니다. 집합은 중복을 허용하지 않기 때문에, 중복을 제거하는데 유용하게 사용될 수 있습니다.
2023.05.03 - [프로그래밍/파이썬(Python) 기초부터 ~] - [파이썬(PYTHON)] 기본적인 자료구조 - 딕셔너리
반응형
'GD's IT Lectures : 기초부터 시리즈 > 파이썬(Python) 기초부터 ~' 카테고리의 다른 글
[파이썬(PYTHON) : 중급] 함수 고급 활용 (1) | 2023.05.07 |
---|---|
[파이썬(PYTHON) : 중급] 고급 문자열 처리 (1) | 2023.05.07 |
[파이썬(PYTHON)] 기본적인 자료구조 - 딕셔너리 (0) | 2023.05.03 |
[파이썬(PYTHON)] 기본적인 자료구조 - 튜플 (0) | 2023.05.03 |
[파이썬(PYTHON)] 기본적인 자료구조 - 리스트 (0) | 2023.05.03 |
댓글