본문 바로가기
Program/Python

Python 기초 :: 집합(Set) 자료형

by 시레엔 2017. 8. 26.
반응형

안녕하세요.

오늘의 포스팅은 앞의 자료형들과 비슷하지만, 집합으로 묶어서 사용할 수 있는 집합 자료형에 대해서 설명하려고 합니다.

집합형은 Set이라는 Keyword를 통해서 그동한 제한적인 부분이 집합 자료형으로 표현할 수 있는데, 아래에서 예제와 같이 설명드릴 수 있도록 하겠습니다.


집합자료형


>>> set = set([1,2,3])

>>> set

{1,2,3}

>>> set1 = set("apple")

>>> set1

{'e', 'p', 'a', 'l'}


위에 예시에서 볼 수 있듯이, set이라는 키워드를 통해서 집합을 만들어 줄 수 있습니다. 또한, 문자열일 경우에는 apple을 입력했을때,

중복되는 'p' 값을 제외하고, 입력이 됩니다. 이것과 같이 set으로 이루어진 집합형은 중복을 허용하지 않는다는 특징과 순서가 없다는 특징이 있다.

기존에 설명했던 리스트나 튜플에 관해서는 순서가 있어서 인덱싱을 통해서 각 데이터 값을 도출할 수 있었지만, 집합형을 인덱싱으로 도입하기 위해서는 리스트나 튜플로 변환을 시켜서 적용을 해야합니다. 아래 예시가 리스트와 튜플로 바꾸는 예시입니다.


>>> set = set ([1,2,3])

>>> a= list(set)

>>> a

[1,2,3]

>>> b=tuple(set)

>>> b

(1,2,3)


집합 자료형의 응용


집합에서 가장 많이 활용되는 부분은 합집합, 차집합, 교집합이라고 할 수 있습니다.

중학교 수학을 처음 배울때 합,차,교집합에 대해서 배웠을텐데요. 파이썬에서는 이것은 간단한 기호로서 표현할 수 있습니다.


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

>>> b = set ([4, 5, 6, 7, 8, 9])

>>> a&b

{4,5,6}

>>> a.intersection(b)

{4,5,6}

>>> a|b

{1,2,3,4,5,6,7,8,9}

>>> a.union(b)

{1,2,3,4,5,6,7,8,9}

>>> a-b

{1,2,3}

>>> a.difference(b)
{1,2,3}


일단 각 합집합, 차집합, 교집합에 필요한 기호는 각 '|', '-', '&'으로 표현이 되어집니다.

또한, 위에서 볼 수 있듯이 union, difference, intersection등의 함수로 표현을 할 수도 있으며, 제 경우에는 위의 기호보다는 함수로 사용해서 if문안에 넣어 사용하는게 보기 좋기 때문에 사용을 하고 있습니다.


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

>>> a.add(4)

>>> a

{1,2,3,4}

>>> a.update([5,6])

>>> a

{1,2,3,4,5,6}

>>> a.remove(6)

{1,2,3,4,5}


집합형에서 단일 요소를 추가하기위해 add라는 명령어를 사용하며 적용할 수 있습니다. 또한, 여러 요소를 추가하기 위해서는 update함수를 이용하여 적용할 수 있습니다. 지금까지 포스팅한 것들과 거의 비슷한 내용이 많아서 위의 예시만 보고도 쉽게 이해할 수 있을 것이라고 생각합니다. 


반응형

댓글