Python 기본 - 6. 집합 자료형 다루기

집합. 고등학교 수학 시작하면 가장 처음에 나오는 개념이지.

2011년 수능 이후 가장 유명한 유형 중 하나가 된 문제. 집합은 개념만 사용되었다.

집합 자료형은 set()을 이용하여 생성할 수 있다.

이들의 특징은 두 가지.

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

  2. 순서가 없다.

1번 특징 때문에 set()을 중복 요소를 제거하기 위해 사용하기도 한다.

2번 특징은 집합 자료형을 indexing 못하게 만든다. (집합 안의 요소를 index으로 특정하지 못한다)

1
2
3
4
5
6
7
8
9
>>> set_1 = set("Hello")
>>> print(set_1)
{'e', 'H', 'l', 'o'} #l이 하나 중복되어서 제거됨

>>> list_1 = list(set_1) #set_1을 list화
>>> print(list_1)
['H', 'e', 'l', 'o']
>>> print(list_1[0]) #list이므로 indexing 가능
H

집합 자료형을 이용하여 교집합(&), 합집합(|), 차집합(-)을 구할 수 있다.

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

>>> print(s1 & s2) #교집합 구하기
{4, 5, 6}

>>> print(s1 | s2) #합집합 구하기
{1, 2, 3, 4, 5, 6, 7, 8, 9}

>>> print(s1 - s2) #차집합 구하기
{1, 2, 3}
>>> print(s2 - s1)
{8, 9, 7}

끗!