Python
[Python] set() 함수 : 집합
meizzi
2023. 2. 8. 17:52
728x90
반응형
set() 함수
- set()은 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다.
- set() 키워드를 그대로 사용하거나 중괄호({ })를 사용하여 표현 가능하다.
- 중괄호 사용 시 중괄호 자체만으로는 dict를 선언하는 것이므로 주의해야 한다.
- set()은 리스트, 문자열 모두 입력해 만들 수 있다.
- 중복을 허용하지 않고 순서가 없다.
- 순서가 없어 인덱싱으로 값을 얻을 수 없다.
- 따라서 인덱싱에 접근하고자 할 때는 리스트나 튜플로 변환한 후 접근해야 한다.
- 특히 교집합, 합집합, 차집합을 구할 때 유용하게 사용할 수 있다.
s1 = set([1,2,3])
s1 # {1, 2, 3}
s2 = set("Hello")
s2 # {'e', 'H', 'l', 'o'}
교집합, 합집합, 차집합
1. 교집합
- "&" 기호를 이용하여 간단히 구할 수 있다.
- 또는 intersection() 함수를 사용하여 구할 수 있다.
s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
s1 & s2 # {4, 5, 6}
s1.intersection(s2) # {4, 5, 6}
2. 합집합
- "|" 기호를 이용하여 간단히 구할 수 있다.
- 또는 union() 함수를 사용하여 구할 수 있다.
s1 | s2 # {1, 2, 3, 4, 5, 6, 7, 8, 9}
s1.union(s2) # {1, 2, 3, 4, 5, 6, 7, 8, 9}
3, 차집합
- 빼기(-) 기호를 이용하여 간단히 구할 수 있다.
- 또는 difference() 함수를 사용하여 구할 수 있다.
s1 - s2 # {1, 2, 3}
s2 - s1 # {8, 9, 7}
s1.difference(s2) # {1, 2, 3}
s2.difference(s1) # {8, 9, 7}
집합 자료형 관련 함수들
1. add()
- 이미 만들어진 set 자료형에 원소 추가
s1 = set([1, 2, 3])
s1.add(4)
s1 # {1, 2, 3, 4}
2. update()
- 여러 개의 원소를 한꺼번에 추가
s1 = set([1, 2, 3])
s1.update([4, 5, 6])
s1 # {1, 2, 3, 4, 5, 6}
3. remove(), discard()
- 특정 원소 제거
- remove()와 discard()의 차이점
- discard()의 경우, 제거하려는 원소가 없어도 error가 발생하지 않지만 remove()는 error가 발생한다.
s1 = set([1, 2, 3])
s1.remove(2)
s1 # {1, 3}
s2 = set([1, 2, 3])
s2.discard(2)
s2 # {1, 3}
728x90
반응형