곰퓨타의 SW 이야기

[python] 집합 자료형 뿌시기 본문

TIL/코테개념_python

[python] 집합 자료형 뿌시기

곰퓨타 2021. 1. 6. 20:50

이 친구도 앞의 글과 같이 점프투 파이썬 뿌시기를 이어가보고자 한다..!

 

[내사랑 점프투 파이썬❣️]

wikidocs.net/1015

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

 

 

집합 자료형 ?!?

집합(set)은 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다. 이는 set 키워드를 통해 만들 수 있고 리스트 혹은 문자열을 집합화시킬 수 있다.

 

>>> s1 = set([1,2,3])
>>> s1
{1, 2, 3}
>>> s2 = set("Hello")
>>> s2
{'e', 'H', 'l', 'o'}

 

집합 자료형 특징

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

- 순서가 없다.

--> 인덱싱 불가능 --> 리스트 혹은 튜플로 바꾸어 인덱싱하는 방법으로 인덱싱해야 한다..ㅎ

>>> s1 = set([1,2,3])
>>> l1 = list(s1)
>>> l1
[1, 2, 3]
>>> l1[0]
1
>>> t1 = tuple(s1)
>>> t1
(1, 2, 3)
>>> t1[0]
1

 

교집합, 합집합, 차집합 구하기

코딩테스트에서 반복되지 않는 것을 활용하여 차집합을 쓰는 경우를 많이 다루었던 기억이 있다.👀

이 책에서 또한 잘 정리해놓은 것 같아서 가져와보고자 한다..!

>>> s1 = set([1, 2, 3, 4, 5, 6])
>>> s2 = set([4, 5, 6, 7, 8, 9])

 

교집합

&을 활용하거나 .intersection 함수를 활용한다.

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

 

합집합

|을 활용하거나, .union함수를 활용한다.

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

 

차집합

-를 활용하거나, .difference 함수를 활용한다.

>>> s1 - s2
{1, 2, 3}
>>> s2 - s1
{8, 9, 7}
>>> s1.difference(s2)
{1, 2, 3}
>>> s2.difference(s1)
{8, 9, 7}

 

 

 

집합 자료형과 관련된 함수들

사실 점프투파이썬 1회독 했을 때 빼고, 한 번도 집합 자료형에 관한 함수를 활용해본 적이 없었다. 그래서 지금 봐도 처음보는 느낌이어서 한 번 다시 올겨보고자 한다 ❗️

 

값 1개 추가하기 (add)

>>> s1 = set([1, 2, 3])
>>> s1.add(4)
>>> s1
{1, 2, 3, 4}

 

값 여러개 추가하기(update)

>>> s1 = set([1, 2, 3])
>>> s1.update([4, 5, 6])
>>> s1
{1, 2, 3, 4, 5, 6}

 

특정 값 제거하기(remove)

>>> s1 = set([1, 2, 3])
>>> s1.remove(2)
>>> s1
{1, 3}

 

 

쓰면서 외웠으니 다음에 사용할 일이 있다면 바로바로 활용해보아야 겠다⭐️

 

다음은 함수에 대해 정리해보고자 한다!!

(현재 파이썬 언어를 활용하면서 어색했던 부분에 대해서 정리를 하고자 하기 때문에

C, java, javascript과 많이 유사한 제어문은 건너뛰고자 한다!!)

Comments