파이썬(Python)에는 셋(Set)이란 객체가 있다. 셋(Set)은 수학 시간 때 배운 집합의 개념과 동일하다. 따라서 셋(Set) 안에는 유니크한 원소들만 담겨있게 된다.
이번 포스팅에서는 파이썬(Python)의 셋(Set) 객체에 대해서 알아보려고 한다.
셋(Set)에 대해서 알아보자.
1) 셋(Set) 생성하기
a. 기본
셋을 생성할때에는 중괄호({ }) 안에 원소를 콤마로 구분하여 넣어주는 식으로 생성한다.
a = {'a', 'b', 'c'}
a
그렇다면 빈 셋(Empty Set)은 어떻게 생성할까? 다음과 같이 set( )을 해주어야 한다. { }은 비어있는 딕셔너리를 의미하므로 혼동하지 않도록 하자.
empty_set = set() ## {}과 혼동하지 말자
empty_set
b. 문자열과 배열을 받아서 생성하기
set은 문자나 배열을 받을 수 있다. 만약 문자열을 받는다면 해당 문자열에 있는 유니크한 글자를 담게 된다.
string = 'hi how are you?'
set(string)
배열을 받으면 해당 배열 속 유니크한 원소를 담게 된다.
iterable = ['a','a','b','c','e','e']
set(iterable)
2) 셋(Set) 연산자
a. 너 우리편이야? : in
in을 통하여 해당 원소가 집합에 포함되는지 알 수 있다.
our_side = {'a', 'b', 'c'}
print('a' in our_side)
print('d' in our_side)
b. 여기에도 있고 저기에도 있는 교집합: intersection, &
intersection 또는 &를 이용하여 두셋(Set)에 공통적으로 포함된 원소를 찾을 수 있다.
our_side = {'a', 'b', 'c'}
other_side = {'a', 'd', 'e'}
print(our_side.intersection(other_side))
print(our_side & other_side)
c. 여기나 저기에 있는 합집합 : union, |
union 또는 |를 이용하여 두 셋(Set)의 합집합을 찾을 수 있다.
our_side = {'a', 'b', 'c'}
other_side = {'a', 'd', 'e'}
print(our_side.union(other_side))
print(our_side | other_side)
d. 여기에만 있는 차집합 : difference, -
difference나 빼기 기호 '-'를 이용하여 차집합을 계산할 수 있다. 아래는 our_side에 있지만 other_side에는 없는 원소를 찾는 코드이다.
our_side = {'a', 'b', 'c'}
other_side = {'a', 'd', 'e'}
print(our_side.difference(other_side))
print(our_side - other_side)
e. 두 곳에 발 걸치고 있는 것들은 빼자, 대칭 차집합 : symmetric_difference, ^
symmetric_difference, ^을 이용하여 대칭 차집합을 구할 수 있다.
our_side = {'a', 'b', 'c'}
other_side = {'a', 'd', 'e'}
print(our_side.symmetric_difference(other_side))
print(our_side ^ other_side)
f. 너는 나한테 둘러싸여 있는가? 부분집합 : issubset, <=, <
issubset과 '<='을 이용하여 첫 번째 셋이 두 번째 셋의 부분 집합인지 확인할 수 있다. 이때 등호를 뺀 '<'은 진 부분 집합(Proper Subset)(=자기 자신을 제외한 부분 집합)인지를 확인한다.
a = {'a', 'b', 'c'}
b = {'a', 'b'}
print(b.issubset(a))
print(b <= a)
print(a < a)
e. 너는 나를 둘러싸고 있는가? superset : issuperset, >=, >
superset은 부분 집합(subset)의 반대개념이다. issuperset과 >=를 이용하여 첫 번째 셋이 두 번째 셋의 superset이 되는지 알 수 있다. 이때 등호를 뺀 '>'은 Proper Subset(=자기 자신을 제외한 superset)인지를 확인한다.
a = {'a', 'b', 'c'}
b = {'a', 'b'}
print(a.issuperset(b))
print(a >= b)
print(a > a)
'프로그래밍 > Python' 카테고리의 다른 글
파이썬(Python) - 객체(Class, 클래스) 타입 확인 및 일치 여부 (feat. type, isinstance) (0) | 2022.09.27 |
---|---|
파이썬(Python) - 클래스(객체) 속성 존재 확인, 속성 변경하기, 속성 값 확인, 속성 삭제 (feat. hasattr, setattr, getattr, delattr) (3) | 2022.09.26 |
파이썬(Python) tqdm 사용법 알아보기 (5) | 2022.09.21 |
파이썬(Python) 튜플(Tuple)과 리스트(List)의 공통점과 차이점 (0) | 2022.09.19 |
파이썬(Python) 데코레이터(Decorator)에 대해서 알아보자 (feat. @) (0) | 2022.09.19 |
댓글