[Python] 파이썬 자료 구조 - set

haejun-kim·2020년 6월 21일
0

[Python]

목록 보기
2/19
post-thumbnail
post-custom-banner

set() - 집합

파이썬의 set() 은 반복 가능하고, 가변적이며, 중복 요소가 없고, 정렬되지 않은 데이터 타입이다.

>>> a = set()
>>> type(a)
<class 'set'>
>>> a = {1,2,3}
>>> type(a)
<class 'set'>

{}로 묶였다고 해서 dict()와 헷갈리지 말자.
키와 값이 없기 때문에 dict()가 아니다.

중복이 없다.

set() 의 가장 큰 특징이다. 중복을 허용하지 않는다.

>>> a = set([0,0,0,1,2,3])
>>> a
{0, 1, 2, 3}

0이 3개가 출력되어야 하지만 실체 출력 결과에서 0은 하나만 출력되었다.

집합 연산

중복을 허용하지 않는다는 특징을 이용해서 어떨 때 사용할까? 집합 연산을 할 때 많이 사용한다.

>>> a = set([1,2,3,4])
>>> b = set([3,4,5,6])

두 개의 집합이 있다. 교집합과 합집합을 각각 구해보자.

교집합

>>> a & b
{3, 4}

ab의 공통적인 부분인 3, 4 만 출력됐다.

합집합

>>> a | b
{1, 2, 3, 4, 5, 6}

3,4가 중복이 되어야 함에도 불구하고 중복이 되지 않는다.

차집합

>>> a - b
{1, 2}

집합 a 에서 집합 b와 공통 부분인 3, 4가 없어진 1, 2만 출력됐다.

add()

집합도 요소를 추가시킬 수 있다.

>>> a.add(5)
>>> a.add(6)
>>> a
{1, 2, 3, 4, 5, 6}

remove()

집합의 요소 삭제

>>> a.remove(3)
>>> a
{1, 2, 4, 5, 6}

update()

집합 전체를 업데이트 하는 기능

>>> a.update([5,6,7,8,9])
>>> a
{1, 2, 4, 5, 6, 7, 8, 9}

물론 이 경우에도 중복은 허용하지 않는다.

post-custom-banner

0개의 댓글