집합은 유일한 원소만 담는 정렬되지 않은 자료형이다.
사전과 유사하지만 값은 없고 키만 가지고 있다고 생각하면 된다.
1. 집합을 생성하는 2가지 방법
(첫 번째 방법은 대괄호 내 key값 없이 입력을 하는 방법이고, 두 번째 방법은 set([])내 입력을 하는 방법이다.)
2. 집합 역시 객체가 변경 불가능이여야 하므로, 리스트는 집합이 될 수 없다.
(my_data는 리스트이며, x는 집합이다. 아래와 같이 my_data와 x는 서로 같지 않다는 결과값이 나왔고(False), my_data를 튜플로 하여 my_set으로 설정해주니 x와 my_set은 같다는 결과값(True)이 나왔다.)
3. 파이썬 집합 연산
여기서 a와 b라는 집합이 있다고 가정을 하고 아래 표를 작성
함수 | 대체 문법 | 설명 |
a.add(x) | N/A | a에 원소 x를 추가 |
a.clear() | N/A | 모든 원소를 제거하고 빈 상태로 되돌린다. |
a.remove(x) | N/A | a에서 원소 x를 제거 |
a.pop() | N/A | a에서 임의의 원소를 제거, 비어 있는 경우 KeyError를 발생시킴 |
a.union(b) | a | b | a와 b의 합집합 |
a.update(b) | a |= b | a에 a와 b의 합집합을 대입 |
a.intersection(b) | a & b | a와 b의 교집합 |
a.intersection_update(b) | a &= b | a에 a와 b의 교집합을 대입 |
a.difference | a - b | a와 b의 차집합 |
a.difference_update(b) | a -= b | a에 a와 b의 차집합을 대입 |
a.symmetric_difference(b) | a ^ b | a와 b의 대칭차집합 |
a.symmetric_difference_update(b) | a ^= b | a에 a와 b의 대칭차집합을 대입 |
a.issubset(b) | N/A | a의 모든 원소가 b에 속할 경우 True |
a.issuperset(b) | N/A | a가 b의 모든 원소를 포함할 경우 True |
a.isdisjoint(b) | N/A | a와 b 모두에 속하는 원소가 없을 경우 True |
'Data organization > 개념정리' 카테고리의 다른 글
함수란?(Function) (0) | 2021.02.12 |
---|---|
Comprehension(리스트, 딕셔너리) (0) | 2021.02.12 |
딕셔너리(Dictionary) (0) | 2021.02.03 |
자료형 함수 (0) | 2021.01.28 |
리스트 활용 방법 (0) | 2021.01.27 |