2021.09.26 - [알고리즘 기초] 동명이인 찾기 / Set 에서 Set의 개념을 간단하게 아래와 같이 정리했었다.
- 리스트와 같이 여러 정보를 넣어서 보관하는 자료구조
- 중복을 허용하지 않고, 자료의 순서가 없다.
여기에 더해서 set은 수학적 개념인 집합을 다룰 수 있는 데이터형이기도 한다. 집합과 명제할 때 그 집합 맞다.
따라서 이 글에서는 수학에서의 집합 개념을 python set으로 다룰 때 사용하는 연산, 함수 등을 정리해두려고 한다.
선언 및 초기화
set 데이터는 set 생성자 또는 중괄호로 선언하여 초기화할 수 있다.
생성자
a = set()
a.add(1)
a.add(2)
a.add(4)
print(type(a), a)
중괄호
dictionary 선언할 때와 다르게 key가 없다.
a = {1, 2, 4}
print(type(a))
그 외 집합 연산에 해당하지 않는 사용 방법은 이전 글을 참고하길 바란다.
집합 연산
set를 이용할 수 있는 연산은 합집합(Union), 교집합(Intersection), 차집합(Difference), 대칭 차집합(Symmetric Difference)이 존재한다.
합집합
합집합 \(A \cup B\)은 union 함수 또는 연산자 |를 사용하여 구할 수 있다.
a = {1, 2, 4}
b = {3, 4, 5, 6}
print(f"a = {a}")
print(f"b = {b}")
print(f"a | b = {a | b}")
print(f"a.union(b) = {a.union(b)}")
교집합
교집합 \(A \cap B\)은 intersection 함수 또는 연산자 &를 사용하여 구할 수 있다.
a = {1, 2, 4}
b = {3, 4, 5, 6}
print(f"a = {a}")
print(f"b = {b}")
print(f"a & b = {a & b}")
print(f"a.intersection(b) = {a.intersection(b)}")
차집합
차집합 \( A \setminus B \)은 difference 함수 또는 연산자 -를 사용하여 구할 수 있다.
a = {1, 2, 4}
b = {3, 4, 5, 6}
print(f"a = {a}")
print(f"b = {b}")
print(f"a - b = {a - b}")
print(f"a.difference(b) = {a.difference(b)}")
대칭 차집합
대칭 차집합 \(A \triangle B\)은 difference 함수 또는 연산자 ^를 사용하여 구할 수 있다.
a = {1, 2, 4}
b = {3, 4, 5, 6}
print(f"a = {a}")
print(f"b = {b}")
print(f"a ^ b = {a ^ b}")
print(f"a.symmetric_difference(b) = {a.symmetric_difference(b)}")
참고 문서