13. 파이썬 집합 자료형

  • 네이버 블로그 공유하기
  • 카카오톡 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기

파이썬 리스트, 튜플 에 이어 딕셔너리 관련 함수에 대해 알아봤었는데
오늘은 파이썬 집합 자료형에 대해 알아보도록 하겠습니다.

파이썬 집합 자료형 만드는 방법

집합 자료형을 만들기 위해서는 set 이라는 키워드를 사용합니다

리스트 이용

Python
>>> a1 = set([2, 4, 6])
>>> a1
{2, 4, 6}

set() 식으로 괄호안에 리스트를 입력하여 만들수 있습니다

문자열 이용

Python
>>> a2 = set("soccer")
>>> a2
{'c', 'e', 'r', 'o', 's'}

비어있는 집합 자료형

Python
>>> a = set()
set()

집합 자료형 특징

위의 문자열 이용에서 보면 “soccer”라고 입력했는데 출력은 ‘c’도 하나만 나오고 순서도 엉망입니다.
집합 자료형 set 은 중복을 허용하지 않고, 순서가 없기때문입니다.
이런 특징으로 중복을 제거하기 위해 필터로도 사용되곤 합니다.

집합 자료형 set 요소 인덱싱

Python
>>> a1 = set([2, 4, 6])
>>> l1 = list(a1)
>>> l1
[2, 4, 6]
>>> l1[0]
2
>>> t1 = tuple(a1)
>>> t1
(2, 4, 6)
>>> t1[0]
2

리스트나 튜플의 경우 순서가 있기에 인덱싱을 해서 값을 얻을수 있지만 집합 자료형 set 의 경우에는 순서가 없다는 특징 때문에 인덱싱을 할 수 가 없습니다. 지난번에 본 딕셔너리의 경우도 마찬가지였죠
그래서 집합 자료형 set 에서 요소를 인덱싱 하기 위해서는 리스트나 튜플로 변환 뒤에 가능합니다.

교집합, 합집합, 차집합

교집합, 합집합, 차집합 을 구할때가 set 집합형 자료형을 유용하게 사용할 때입니다.
2개의 set 자료형 을 만들어 보겠습니다.

Python
>>> a1 = set([2, 3, 4, 5, 6])
>>> a2 = set([5, 6, 7, 8, 9])

교집합

a1 과 a2 의 교집합을 구해보겠습니다

Python
>>> a1 & a2
{5, 6}

교집합의 경우 ‘&’ 기호를 사용합니다. intersection 함수를 사용할수도 있습니다.

Python
>>> a1.intersection(a2)
{5, 6}
>>> a2.intersection(a1)
{5, 6}

a1 과 a2 의 교집합이나 a2 와 a1 의 교집합이나 같은 결과가 나오는 걸 볼 수 있습니다.

합집합

Python
>>> a1 | a2
{2, 3, 4, 5, 6, 7, 8, 9}

합집합은 중복된 값은 한 개씩만 표현 합니다
‘|’ 기호를 사용합니다.
아래처럼 union 함수를 사용하기도 합니다.

Python
>>> a1.union(a2)
{2, 3, 4, 5, 6, 7, 8, 9}

교집합에서와 마찬가지로 a2.union(a1) 의 경우에도 같은 결과를 볼수 있습니다.

Python
>>> a2.union(a1)
{2, 3, 4, 5, 6, 7, 8, 9}

차집합

Python
>>> a1 - a2
{2, 3, 4}
>>> a2 - a1
{8, 9, 7}

‘-‘ 마이너스 기호를 사용한 방법입니다.
difference 함수를 사용할 수 도 있습니다.

Python
>>> a1.difference(a2)
{2, 3, 4}
>>> a2.difference(a1)
{8, 9, 7}

집합 자료형 관련 함수들

요소 값 1개 추가(add)

만들어져 있는 집합 자료형 set 에 요소를 추가할 수 있습니다. 값을 1개만 추가시에는 add 를 사용할수 있습니다

Python
>>> a1 = set([2, 4 ,6])
>>> a1.add(5)
>>> a1
{2, 4, 5, 6}

5가 정렬되어 추가 되었습니다.

요소 값 여러개 추가

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

기존 1개 요소를 추가한 {2, 4, 5, 6}의 집합 자료형에서 {7, 8, 9}를 추가했습니다.

요소 값 삭제(remove)

특정 요소를 제거 하고 싶다면 remove 함수를 사용합니다.

Python
>>> a1.remove(6)
>>> a1
{2, 4, 5, 7, 8, 9}
  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
13. 파이썬 집합 자료형

Leave a Comment