Python 프로그래밍/Python 초급

파이썬 초급10 (집합 - 자료형)

NOP(No Operation) 2020. 2. 16. 01:20

파이썬 집합 자료형


1. 집합


집합(set)은 우리가 중학교 때 배웠던 집합에 관련된 것을 다루기 위해 만들어진 자료형입니다.

 

세트 자료형두 가지 특징을 가집니다.

1. 순서가 없다(Unorderd)

2. 중복될 수 없다.

 

1. 집합 선언 법


파이썬 IDLE를 켜 [Ctrl+N]으로 새로운 창을 만들어줍니다.

1
2
3
4
= {'Hello','world','Python'#"Hello","World","Python"로 3개를 세트로 만들어 줍니다.
= 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
= {'Hello','world','Python'#"Hello","World","Python"로 3개를 세트로 만들어 줍니다.
= set('Python'#set함수르 만들 경우  시퀀스 자료형을 1개씩 뽑아서 만들어 줍니다.
print(a) #순서없이 랜덤하게 "Hello","World","Python" 출력
print(b) #순서없이 랜덤하게 "P","y","t","h","o","n" 출력
= set("Hon")
print(c|b) #c집합과 b집합의 합집합을 출력합니다.
print(c.union(b)) #c집합과 b집합의 합집합을 출력하는 다른 방법입니다.
cs

 

실행하면 합집합이 나옵니다.

 


2. 차집합

1
2
3
4
5
6
7
= {'Hello','world','Python'#"Hello","World","Python"로 3개를 세트로 만들어 줍니다.
= set('Python'#set함수르 만들 경우  시퀀스 자료형을 1개씩 뽑아서 만들어 줍니다.
print(a) #순서없이 랜덤하게 "Hello","World","Python" 출력
print(b) #순서없이 랜덤하게 "P","y","t","h","o","n" 출력
= set("Hon")
print(b-c) #b집합에서 c집합의 차집합을 출력합니다.
print(b.difference(c)) #b집합에서 c집합의 차집합을 출력하는 다른 방법입니다.
cs

 

실행하면 합집합이 나옵니다.

 


3. 교집합

1
2
3
4
5
6
7
= {'Hello','world','Python'#"Hello","World","Python"로 3개를 세트로 만들어 줍니다.
= set('Python'#set함수르 만들 경우  시퀀스 자료형을 1개씩 뽑아서 만들어 줍니다.
print(a) #순서없이 랜덤하게 "Hello","World","Python" 출력
print(b) #순서없이 랜덤하게 "P","y","t","h","o","n" 출력
= set("Hon")
print(b&c) #b집합과 c집합의 교집합을 출력합니다.
print(b.intersection(c)) #b집합과 c집합의 교집합을 출력하는 다른 방법입니다.
cs

 

실행하면 교집합이 나옵니다.

 


4. 대칭차집합

대칭차집합이란 합집합에서 교집합을 뺀 것입니다.

1
2
3
4
5
6
7
= {'Hello','world','Python'#"Hello","World","Python"로 3개를 세트로 만들어 줍니다.
= set('Python'#set함수르 만들 경우  시퀀스 자료형을 1개씩 뽑아서 만들어 줍니다.
print(a) #순서없이 랜덤하게 "Hello","World","Python" 출력
print(b) #순서없이 랜덤하게 "P","y","t","h","o","n" 출력
= 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
= {1234#1~4으로 집합을 만든다.
= {5678#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
= {1234#1~4으로 집합을 만든다.
= {5678#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
= {1234#1~4으로 집합을 만든다.
= {5678#5~8으로 집합을 만든다.
print(a) #a를 출력한다.
a.pop() #a에 첫번째 값을 뽑고 값을 반환한다. pop(x)를 하면 x에 위치에 있는 값을 반환한다.
print(a) #a에서 1이 빠진걸 확인 할수.
cs

세트의 길이 구하는 법 (len)

1
2
3
4
= {1234#1~4으로 집합을 만든다.
= {5678#5~8으로 집합을 만든다.
print(a) #a를 출력한다.
print(len(a)) #a집합의 길이를 반환한다.
cs

집합 자료형을 시작적으로 노트에 그림을 그려보시면 이해가 더 쉬울 겁니다.

※요약

더보기

집합 자료형은 우리가 중학교 때 배운 집합이다.

여러 가지 연산을 통해 원하는 데이터로 가공할 수 있다.


※숙제

더보기

집합 자료형을 선언해보고

드 모르간의 법칙을 구현해 주세요.

오늘은 파이썬의 집합 자료형을 배워보았습니다.

다음 시간에는 불 자료형에 대해서 배워볼 것입니다.