0. Introduction
- Sets은 한국어로 집합을 의미한다. 수학의 집합을 생각해보자.
- sequence X, 중복 X
- 순서가 없기 때문에, 출력할 때마다 달라진다.
- slicing 과 indexing 안된다.
- mutable 자료형 => 수정 O, 삭제 O
- 집합 자료형 활용에 핵심이다.
1. Sets 선언
- dictionary 처럼 sets 도 다양한 선언 방식이 있다.
- 빈집합, list 형식으로도, 중괄호로도 가능하다.
|
|
❗ set 빈집합 선언 시, 주의사항
set과 dictionary는 중괄호를 동일하게 사용하여, 아래 b와 같이 사용하면 dict로 인식한다. 그래서 중괄호를 사용하여 빈집합을 선언할 수는 없다.
빈집합으로 set을 만들고 싶으면 함수를 사용해야 한다.
1 2 3 4 5 6 7 8 9
> a = set() > b = {} print(type(a), type(b)) <class 'set'> <class 'dict'> > b = {1,2} > b = {1,2,} print(type(b)) <class 'set'>
2. Sets type converison
- 파이썬의 장점 중 하나: 간단한 형 변환
sets
에 중복으로 값을 입력해도, 중복을 허락하지 않기 때문에 type conversion 시에도 중복된 값들은 하나만 있는 걸 확인할 수 있다.tuple
로 변환
|
|
list
로 변환
|
|
- 또한
len
함수로 길이를 구할 수 있다.
|
|
3. 집합 자료형 함수: Sets 함수
교집합
A & B
A.intersection(B)
합집합
A | B
A.union(B)
차집합
A - B
A.difference(B)
교집합 유무 판단
A.isdisjoint(B)
: A와 B에 교집합이 존재하는가??
부분집합 유무 판단
A.issubset(B)
: A는 B의 부분집합인가??
상위집합 유무 판단
A.issupset(B)
: A는 B의 상위집합인가??
|
|
4. Sets 수정, 추가, 제거
추가하는 건
.add(추가하려는 원소)
를 사용한다.삭제하는 건
.remove(삭제하려는 원소)
또는.discard(삭제하려는 원소)
를 사용한다.- 전자는 error가 뜨지만, 후자는 error를 발생시키지 않는다.
모두 제거하는 건
.clear()
함수를 사용한다.
|
|