세트 연산자와 메서드 비교
합집합 : | 혹은 set.union()
>>> a = {1, 2}
>>> b = {3, 4}
>>> a | b
{1, 2, 3, 4}
>>> set.union(a, b)
{1, 2, 3, 4}
교집합 : & 혹은 set.intersection()
>>> a & b
{3, 4}
>>> set.intersection(a, b)
{3, 4}
차집합 : - 혹은 set.difference()
>>> a-b
{1, 2}
set.difference(a, b)
{1, 2{
대칭차집합(XOR연산) : ^ 혹은 set.symmetric_difference()
>>> a = {1, 2, 3, 4}
>>> b = {3, 4, 5, 6}
>>> a ^ b
{1, 2, 5, 6}
>>> set.symmetric_difference(a, b)
{1, 2, 5, 6}
집합 연산 후 할당 연산자 사용하기
|= 와 update()
>>> a = {1, 2, 3, 4, 5}
>>> a |= {5}
>>> a
{1, 2, 3, 4, 5}
>>> a.update({6})
>>> a
{1, 2, 3, 4, 5, 6}
&=와 intersection_update()
>>> a = {1, 2, 4, 5}
>>> a &= {0, 1, 2, 3, 4}
>>> a
{1, 2, 4}
>>> a = {1, 2, 4, 5}
>>> a.intersection_update({0, 1, 2, 3, 4})
>>> a
{1, 2, 4}
-= 와 difference_update()
>>> a = {1, 2, 3, 4}
>>> a -= {3}
>>> a
{1, 2, 4}
>>> a = {1, 2, 3, 4}
>>> a.difference_update({3})
>>> a
{1, 2, 4}
^=와 symmetric_difference_update() : 다음은 세트 {1, 2, 3, 4}dhk {3, 4, 5, 6} 중에서 겹치지 않는 요소만 a에 저장한다.
>>> a = {1, 2, 3, 4}
>>> a ^= {3, 4, 5, 6}
>>> a
{1, 2, 5, 6}
>>> a = {1, 2, 3, 4}
>>> a.symmetric_difference_update({3, 4, 5, 6})
>>> a
{1, 2, 5, 6}
부분 집합과 상위 집합 확인하기
<=은 현재 세트가 다른 세트의 부분집합인지 확인. (issubset()와 동일) 등호가 있으면 두 세트가 같을 때도 참이다.
>>> a = {1, 2, 3, 4}
>>> a <= {1, 2, 3, 4}
True
>>> a.issubset({1, 2, 3, 4, 5})
True
<은 진부분집합인지를 확인하며 별도의 메서드는 없다. 즉, 부분집합이지만 동일한 세트는 아닌 경우에 참이다.
>>> a = {1, 2, 3, 4}
>>> a < {1, 2, 3, 4, 5}
True
반대 방향일 때도 논리적으로 생각하여 연산 가능.
세트가 동일한 요소로 구성되어 있는지는 == 연산자를 이용하여 확인 가능. 단, 세트는 집합으로 순서가 없으므로, 각 요소의 존재만 같으면 참이다.
>>> a = {1, 2, 3, 4}
>>> a == {1, 2, 3, 4}
True
>>> a == {4, 2, 1, 3}
True
>>> a = {1, 2, 3, 4}
>>> a != {1, 2, 3}
True
세트가 겹치지 않는지 확인
disjoint를 통해 현재 세트가 다른 세트와 겹치지 않는지 확인한다. 겹치는 요소가 없으면 True, 겹치는 요소가 있으면 False이다.
>>> a = {1, 2, 3, 4}
>>> a.isdisjoint({5, 6, 7, 8}) # 겹치는 요소가 없음
True
>>> a.isdisjoint({3, 4, 5, 6}) # a와 3, 4가 겹침
False
세트 표현식 사용하기
세트는 for 반복문과 if 조건문을 사용하여 세트를 생성할 수 있다. 다음과 같이 세트 안에 식과 for 반복문을 지정하면 된다.
- {식 for 변수 in 반복가능한객체}
- set(식 for 변수 in 반복가능한객체)
>>> a = {i for i in 'apple'}
>>> a
{'l', 'p', 'e', 'a'}
세트 표현식에 if 조건문 사용하기
- {식 for 변수 in 세트 if 조건식}
- set(식 for 변수 in 세트 if 조건식)
>>> a = {i for i in 'pineapple' if i not in 'apl'}
>>> a
{'e', 'i', 'n'}
출처 : [코딩도장 파이썬] dojang.io/mod/page/view.php?id=2315
'TIL > Python | Django' 카테고리의 다른 글
2021.5.24 TIL : [Django] 블로그 만들기(1) - 파이썬으로 DB 생성, superuser 만들기 (0) | 2021.05.24 |
---|---|
2021.5.16 TIL : [Python] 기초 문법7 - 파일 사용하기 (0) | 2021.05.16 |
2021.5.7 TIL : [Python] 기초 문법5- 딕셔너리(1) (0) | 2021.05.07 |
2021.3.4 TIL : [Python] 기초 문법4 (0) | 2021.03.04 |
2021.3.2 TIL : [Python] 기초 문법3 (0) | 2021.03.02 |
댓글