프로그래밍 언어/Python

파이썬(python) #10_ 집합 자료형

Tigercow.Door 2018. 2. 7. 14:34


안녕하세요. 문범우입니다.

이번에는 파이썬에서 집합 자료형에 대한 이야기를 하겠습니다.

해당 포스팅으로 자료형에 대한 이야기가 마무리 될 예정이며 이후에는 조금 더 빠르게 진도를 나가려 합니다. :)

그 동안 쉬엄쉬엄 조금씩 했더니 너무 느리게 진행되고 있다는걸 최근에서야 깨달은 것 같아서요.

빠르게 기본 개념을 학습하고, 예제를 풀며 심화학습하는 방식으로 진행하겠습니다.



1. 집합 자료형


집합 자료형과 리스트를 혼동하시는 분들도 있는데, 분명히 다른 자료형입니다.

집합 자료형을 통해서 우리는 집합에 관련된 것들을 쉽게 처리할 수 있습니다.

일단 집합 자료형을 만들어 보도록 하겠습니다.

집합 자료형은 아래 사진처럼 set키워드를 통해 만들 수 있습니다.



위의 사진과 같이 set() 의 괄호안에 리스트 또는 문자열을 입력하여 집합 자료형을 만듭니다.



2. 집합 자료형의 특징


그런데, 위의 사진에서 s2라는 집합에 대해 이상한 점을 보셨나요?

우리는 분명, "Hello, world!" 라는 문장을 입력했는데 빠진 글자가 있기도 하고 순서도 엉망이 되었습니다.

이는, 집합 자료형이 가진 아래와 같은 2개의 특징이 있기 때문입니다.


- 중복을 허용하지 않는다.

- 순서가 없다.(Unordered)


우리가 앞에서 학습했던 리스트나 튜플은 순서가 있기 때문에 인덱싱의 개념도 학습하고 이를 통해 자료형의 값을 얻어낼 수도 있었습니다. 하지만 집합 자료형, set 자료형은 순서가 없기 때문에 인덱싱이 존재하지 않습니다. 물론 바로 앞에서 학습했던 딕셔너리 자료형 또한 순서가 없기 때문에 인덱싱이 존재하지 않습니다.

만약, 집합 자료형으로 만든 값에 대해서 인덱싱을 처리하고 싶다면 list() 함수를 통해 집합 자료형을 리스트 자료형, 또는 tuple() 함수를 통해 튜플 자료형으로 변환해주셔야 합니다.



3. 집합 자료형 활용하기


집합 자료형에서는 교집합이나 합집합, 차집합등을 구할 수 있습니다.

각각에 대한 개념은 기초적인 개념이라 생각하고 설명은 생략하겠습니다.


먼저 교집합을 구하기 위한 기호는 '&' 입니다.



또한 아래의 사진 처럼 intersection() 함수를 사용해도 가능합니다.




두번째, 합집합은 '|' 기호를 통해 구할 수 있습니다.

또한, union() 함수를 사용해도 됩니다.




세번째, 차집합은 '-' 기호를 통해 구합니다. 이는 difference() 함수를 사용해도 됩니다.




4. 집합 자료형 관련 함수


집합 자료형과 관련된 함수들 중에서 몇가지만 소개해드리겠습니다.

먼저 하나의 값을 추가하는 add() 함수입니다.



그리고 한번에 여러개의 값을 추가하는 update() 함수입니다.




마지막으로 특정 값을 제거하는 remove() 함수입니다.



이렇게 해서 집합 자료형에 대해 살펴보았습니다.

다음 포스팅에서는 제어문에 대한 이야기를 해보도록 하겠습니다.

728x90