티스토리 뷰

반응형

 

집합 자료형 Set 연산

 

set은 수학에서의 집합과 같다. 집합의 특성과 같이 순서가 없고 중복적인 요소를 허용하지 않는다.

set type의 합집합, 교집합, 차집합과 같은 수학 연산을 사용하는 것에 주로 이용되고 이외에도 요소의 중복을 허용하지 않는 성질을 이용하여 unique 한 값만 남기는 기능으로도 많이 활용된다.

 

이번 포스팅은 합집합, 교집합, 차집합 연산 기능에 대해 다룬다. 중복 제거와 관련해서는 필요하실 분을 위해 이전 포스팅 링크를 걸어둔다. ▶ set함수를 이용한 집합 자료형 생성, 변환 및  중복요소 제거

 

- 순서 -
1. 합집합
2. 교집합
3. 차집합

 


 

1. set 합집합

set의 합집합은 | 연산자와 union함수를 이용할 수 있다. 파이썬의 합집합도 수학의 합집합 연산과 동일한 기능을 한다. set 요소와 또 다른 set 요소를 합하여 새로운 set을 반환하게 된다. 이때 중복되는 요소는 삭제를 한다. 사용 예시를 보면 아래와 같다.

>>> s1 = {1, 2, 3, 4, 5}
>>> s2 = {4, 5, 6, 7}
>>> s1|s2
{1, 2, 3, 4, 5, 6, 7}

>>>s2.union(s1)
{1, 2, 3, 4, 5, 6, 7}

설명 1) | 연산자와 union 함수를 사용한 출력 값을 보면 동일한 값을 출력하였다. 같은 기능으로 사용된다는 것을 알 수 있다. 

설명 2) s1과 s2 두 개의 집합 중 중복되는 요소 4, 5에 대해선 두 번이 아니라 한 번씩만 출력되었다. 이처럼 집합 자료형은 중복되는 값이 여러 개 있을 수 없는 특성을 가지고 있다.

 

2. set 교집합

set의 교집합은 & 연산자와 intersection 함수를 이용할 수 있다. 수학의 교집합과 동일한 연산을 한다. 공통적인 요소만을 포함한 새 set을 반환한다.

>>> s1 = {1, 2, 3, 4, 5}
>>> s2 = {4, 5, 6, 7}
>>> s1&s2
{4, 5}

>>>s1.intersection(s2)
{4, 5}

설명 1) & 연산자와 intersection 함수를 사용한 값이 동일하게 출력되었다.

설명 2) s1, s2 두 개의 집합 중 중복되는 요소 4, 5에 대해서만 출력되었다. 이처럼 수학의 교집합 연산과 동일하게 두 집합의 공통된 요소만으로 이루어진 새 set을 반환한다.

 

3. set 차집합

set의 차집합은 - 연산자와 difference 함수를 이용할 수 있다. 수학의 차집합과 동일한 연산을 한다. 다른 set이 가지고 있는 요소를 빼고 새 set을 반환한다.

>>> s1 = {1, 2, 3, 4, 5}
>>> s2 = {4, 5, 6, 7}
>>> s1 - s2
{1, 2, 3}

>>>s1.difference(s2)
{1, 2, 3}

설명 1) 연산자와 difference 함수를 이용한 값이 동일하게 출력되었다.

설명 2) s1 집합에서 s2 집합의 요소를 빼주는 역할을 한다. s1 집합에서 두 집합의 중복되는 요소 4, 5를 제외한 1, 2, 3만을 요소로 하는 집합이 출력되었다. 

 

반응형
댓글
반응형