파이썬 초급10 (집합 - 자료형)
파이썬 집합 자료형
1. 집합
집합(set)은 우리가 중학교 때 배웠던 집합에 관련된 것을 다루기 위해 만들어진 자료형입니다.
세트 자료형은 두 가지 특징을 가집니다.
1. 순서가 없다(Unorderd)
2. 중복될 수 없다.
1. 집합 선언 법
파이썬 IDLE를 켜 [Ctrl+N]으로 새로운 창을 만들어줍니다.
1
2
3
4
|
a = {'Hello','world','Python'} #"Hello","World","Python"로 3개를 세트로 만들어 줍니다.
b = set('Python') #set함수르 만들 경우 시퀀스 자료형을 1개씩 뽑아서 만들어 줍니다.
print(a) #순서없이 랜덤하게 "Hello","World","Python" 출력
print(b) #순서없이 랜덤하게 "P","y","t","h","o","n" 출력
|
cs |
세트 자료형은 "{ }" 중괄호로 요소를 둘러싸거나 set함수를 이용해 선언이 가능합니다.
실행해 보겠습니다.
프로젝트 폴더에 "8 세트"로 저장해 줍니다.
순서 없이 출력되는 걸 확인할 수 있습니다.
세트는 순서가 없다는 1번째 특성 때문인데
순서가 없기 때문에 인덱싱도 불가능합니다.
2. 집합 연산
집합 자료형을 만든 이유는 집합을 연 산하기 위해서 만들어진 자료형입니다.
그럼 지금부터 연산 법과 결과 값을 알아보겠습니다.
1. 합집합
1
2
3
4
5
6
7
|
a = {'Hello','world','Python'} #"Hello","World","Python"로 3개를 세트로 만들어 줍니다.
b = set('Python') #set함수르 만들 경우 시퀀스 자료형을 1개씩 뽑아서 만들어 줍니다.
print(a) #순서없이 랜덤하게 "Hello","World","Python" 출력
print(b) #순서없이 랜덤하게 "P","y","t","h","o","n" 출력
c = set("Hon")
print(c|b) #c집합과 b집합의 합집합을 출력합니다.
print(c.union(b)) #c집합과 b집합의 합집합을 출력하는 다른 방법입니다.
|
cs |
실행하면 합집합이 나옵니다.
2. 차집합
1
2
3
4
5
6
7
|
a = {'Hello','world','Python'} #"Hello","World","Python"로 3개를 세트로 만들어 줍니다.
b = set('Python') #set함수르 만들 경우 시퀀스 자료형을 1개씩 뽑아서 만들어 줍니다.
print(a) #순서없이 랜덤하게 "Hello","World","Python" 출력
print(b) #순서없이 랜덤하게 "P","y","t","h","o","n" 출력
c = set("Hon")
print(b-c) #b집합에서 c집합의 차집합을 출력합니다.
print(b.difference(c)) #b집합에서 c집합의 차집합을 출력하는 다른 방법입니다.
|
cs |
실행하면 합집합이 나옵니다.
3. 교집합
1
2
3
4
5
6
7
|
a = {'Hello','world','Python'} #"Hello","World","Python"로 3개를 세트로 만들어 줍니다.
b = set('Python') #set함수르 만들 경우 시퀀스 자료형을 1개씩 뽑아서 만들어 줍니다.
print(a) #순서없이 랜덤하게 "Hello","World","Python" 출력
print(b) #순서없이 랜덤하게 "P","y","t","h","o","n" 출력
c = set("Hon")
print(b&c) #b집합과 c집합의 교집합을 출력합니다.
print(b.intersection(c)) #b집합과 c집합의 교집합을 출력하는 다른 방법입니다.
|
cs |
실행하면 교집합이 나옵니다.
4. 대칭차집합
대칭차집합이란 합집합에서 교집합을 뺀 것입니다.
1
2
3
4
5
6
7
|
a = {'Hello','world','Python'} #"Hello","World","Python"로 3개를 세트로 만들어 줍니다.
b = set('Python') #set함수르 만들 경우 시퀀스 자료형을 1개씩 뽑아서 만들어 줍니다.
print(a) #순서없이 랜덤하게 "Hello","World","Python" 출력
print(b) #순서없이 랜덤하게 "P","y","t","h","o","n" 출력
c = set("Chon")
print(b^c) #b집합과 c집합의 대칭차집합을 출력합니다.
print(set.symmetric_difference(b,c)) #b집합과 c집합의 대칭차집합을 출력하는 다른 방법입니다.
|
cs |
실행하면 대칭차집합이 나옵니다.
3. 집합 관련 함수
설명은 코드와 주석으로 대체하겠습니다.
세트에 값 추가하는 법 (add, update)
1
2
3
4
5
6
|
a = {1, 2, 3, 4} #1~4으로 집합을 만든다.
b = {5, 6, 7, 8} #5~8으로 집합을 만든다.
print(a) #a를 출력한다.
a.add(5) #a집합에 5를 추가한다.
a.update('a','b','c') #add와 다르게 update는 값을 여러개 넣을수 있다.
print(a) #a를 출력한다.
|
cs |
세트에 값 삭제하는 법 (remove, discard)
1
2
3
4
5
6
|
a = {1, 2, 3, 4} #1~4으로 집합을 만든다.
b = {5, 6, 7, 8} #5~8으로 집합을 만든다.
print(a) #a를 출력한다.
a.remove(3) #a집합에 3를 삭제한다.
a.discrad(5) #a집합에 5를 삭제한다. 다만 remove는 값이 없다면 오류가 나지만 dircrad는 오류가 생가지 않는다.
print(a) #a를 출력한다.
|
cs |
세트에서 임의의 요소 삭제하는 법 (pop)
1
2
3
4
5
|
a = {1, 2, 3, 4} #1~4으로 집합을 만든다.
b = {5, 6, 7, 8} #5~8으로 집합을 만든다.
print(a) #a를 출력한다.
a.pop() #a에 첫번째 값을 뽑고 값을 반환한다. pop(x)를 하면 x에 위치에 있는 값을 반환한다.
print(a) #a에서 1이 빠진걸 확인 할수.
|
cs |
세트의 길이 구하는 법 (len)
1
2
3
4
|
a = {1, 2, 3, 4} #1~4으로 집합을 만든다.
b = {5, 6, 7, 8} #5~8으로 집합을 만든다.
print(a) #a를 출력한다.
print(len(a)) #a집합의 길이를 반환한다.
|
cs |
집합 자료형을 시작적으로 노트에 그림을 그려보시면 이해가 더 쉬울 겁니다.
※요약
집합 자료형은 우리가 중학교 때 배운 집합이다.
여러 가지 연산을 통해 원하는 데이터로 가공할 수 있다.
※숙제
집합 자료형을 선언해보고
드 모르간의 법칙을 구현해 주세요.
오늘은 파이썬의 집합 자료형을 배워보았습니다.
다음 시간에는 불 자료형에 대해서 배워볼 것입니다.