- 집합(Set) = 집합에 관련된 것들을 쉽게 처리하기 위해 원소를 모아놓은 자료형.
# 원소들을 중괄호 {}로 둘러싼 형태입니다.
개념 | 형태 | 뜻 |
집합 (Set) |
S = {a,b,c,...} S = set(B) S = 집합 a,b,c = 원소 B = 데이터 |
원소들 a,b,c를 모아놓은 집합 S를 만들어. 데이터B를 쪼개어 집합S를 만들어. |
s = {1,2,3,4,5}
print(type(s))
<class 'set'>
b = [1,2,3,4,5]
s = set(b)
print(s)
{1, 2, 3, 4, 5}
6-(1) 집합의 기본 특징
- 중복 허용X
: 집합의 원소들이 중복하는 것을 허용하지 않습니다.
☆중복 제거를 위한 필터로 사용됩니다.
s = set('Hello')
print(s)
{'H', 'e', 'o', 'l'}
- 순서가 없음
: 집합의 원소들은 순서가 없습니다. (인덱스가 없기 때문에 사용할 수 없습니다.)
# 순서가 없기 때문에 인덱싱과 슬라이싱을 지원하지 않습니다.
- Mutable한 객체 + 원소는 Immutable한 데이터
: 집합의 원소는 변경할 수 없는 값을 가지기 때문에 리스트를 원소로 가질 수 없습니다.
# 집합은 mutable한 객체이지만 mutable한 원소를 가질 수 없음.
s = {1,2,[3,4,5]}
print(s)
Error
6-(2) 교집합
- &
함수 | 내용 | |
이름 | & | |
설명 | 집합A와 집합B의 교집합을 만들어 | |
형태 | A&B | |
인자 | A,B = 집합 | |
반환 | 집합 |
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
s = s1&s2
print(s)
{4, 5, 6}
- intersection
함수 | 내용 | |
이름 | intersection | |
설명 | 집합A와 집합B의 교집합을 만들어 | |
형태 | A.intersection(B) | |
인자 | A,B = 집합 | |
반환 | 집합 |
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
s = s1.intersection(s2)
print(s)
{4, 5, 6}
6-(3) 합집합
- |
함수 | 내용 | |
이름 | | 참고로 | = shift + \ | |
설명 | 집합A와 집합B의 합집합을 만들어 | |
형태 | A|B | |
인자 | A,B = 집합 | |
반환 | 집합 |
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
s = s1|s2
print(s)
{1, 2, 3, 4, 5, 6, 7, 8, 9}
- union
함수 | 내용 | |
이름 | union | |
설명 | 집합A와 집합B의 합집합을 만들어 | |
형태 | A.union(B) | |
인자 | A,B = 집합 | |
반환 | 집합 |
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
s = s1.union(s2)
print(s)
{1, 2, 3, 4, 5, 6, 7, 8, 9}
6-(4) 차집합
- 뺄셈 기호(-)
함수 | 내용 | |
이름 | - | |
설명 | 집합A에서 집합B를 빼. | |
형태 | A-B | |
인자 | A,B = 집합 | |
반환 | 집합 |
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
a = s1-s2
b = s2-s1
print(a)
print(b)
{1, 2, 3}
{8, 9, 7}
- difference
함수 | 내용 | |
이름 | difference | |
설명 | 집합A에서 집합B를 빼. | |
형태 | A.difference(B) | |
인자 | A,B = 집합 | |
반환 | 집합 |
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
a = s1.difference(s2)
b = s2.difference(s1)
print(a)
print(b)
{1, 2, 3}
{8, 9, 7}
6-(5) 집합에 원소 추가하기
1) 원소 1개 추가하기
- add
함수 | 내용 | |
이름 | add | |
설명 | 집합S에 원소x 1개를 추가해줘. | |
형태 | S.add(x) | |
인자 | S = 집합 x = 원소 데이터 |
|
반환 | 집합 |
s = set([1,2,3])
s.add(4)
print(s)
{1, 2, 3, 4}
2) 원소 여러개 추가하기
- update
함수 | 내용 | |
이름 | update | |
설명 | 집합S에 리스트L이 가지고 있는 요소들을 추가해줘. | |
형태 | S.update(L) | |
인자 | S = 집합 L = 원소 리스트 |
|
반환 | 집합 |
s = set([1,2,3])
s.update([4,5,6])
print(s)
{1, 2, 3, 4, 5, 6}
6-(6) 집합에 원소 제거하기
- remove
함수 | 내용 | |
이름 | remove | |
설명 | 집합S에 원소x 1개를 제거해줘. 단, 존재하지 않는 원소라면 Error |
|
형태 | S.remove(x) | |
인자 | S = 집합 x = 원소 데이터 |
|
반환 | 집합 |
s = set([1,2,3])
s.remove(2)
print(s)
{1, 3}
*참고 : 점프 투 파이썬
'Programming Language > Python' 카테고리의 다른 글
Ⅱ. 자료형 (5. 딕셔너리) (0) | 2022.08.29 |
---|---|
Ⅱ. 자료형 (4. 튜플) (0) | 2022.08.22 |
Ⅱ. 자료형 (3. 리스트) (0) | 2022.07.25 |
Ⅱ. 자료형 (2. 문자열) (0) | 2022.05.28 |
Ⅱ. 자료형 (1. 숫자형) (0) | 2022.04.27 |