본문 바로가기

교육 노트/파이썬 강의

[파이썬 때려잡기] Python 강의 9 - 집합 (set)

2018/09/04 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 1 - Hello World!

2018/09/04 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 2 - 변수와 자료형, 연산자

2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 3 - 파이썬의 자료구조, 리스트 (list)

2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 4 - 파이썬의 스트링 (string)

2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 5 - 스트링과 리스트 처리-1

2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 6 - 스트링과 리스트 처리-2

2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 7 - 튜플 (tuple)

2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 8 - 딕셔너리 (Dictionary)

집합 자료형은 Unordered 하고 포함하는 자료들은 unique하다

실제 수학에서 집합과 비슷하다.


1. 집합

x = {4,3,2,1}
print (x)
x.add(1) #1을 추가
x.add(5) #5를 추가
print(x)


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

set은 {}으로 묶되 딕셔너리처럼 key-value를 지정하지 않는다

x라는 set에 1과 5를 추가했는데 1은 이미 있어서 추가되지않고 5만 추가된것을 확인할수있다.

또한 순서가 없어 그냥 오름 차순으로 나왔다. 이는 출력이 오름차순으로만 됫을뿐이지 실제로는 순서가 없어 인덱싱이 불가능하다.

x = {4,3,2,1}
print (x[0])

TypeError: 'set' object does not support indexing



리스트와 문자열을 집합으로 바꿀수있다.

l = [1,2,3,4]
st = "Hello World"

print(set(l))
print(set(st))


{1, 2, 3, 4}
{'W', 'r', ' ', 'o', 'l', 'H', 'e', 'd'}


set() 을통해서 set을 만든다

문자열을 보면 순서가 없고 중복을 허용하지 않는다는것을 알수있다.

set을 list() 또는 tuple()을 통해 다시 리스트나 튜플로 만들수있다.

따라서 중복을 제거할떄 list 를 set으로 만들고 list로 다시 만드는등의 방식을 사용하기도 한다.


2.집합 처리

set1 = {1,2,3,4,5}
set2 = {3,4,5,6,7}

print(set1&set2)
print(set1|set2)
print(set1-set2)


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


각각 교/합/차 집합


728x90