셋 (set)
- 값이 없는 딕셔너리와 같은 구조 (즉, 키만있는 딕셔너리)
- 딕셔너리와 마찬가지로 키는 중복 불가
- 집합과 같은 개념
셋 생성하기
set() 함수 사용
>>> s1 = set()
>>> s1
set()
{}를 사용하는 방법
>>> s2 = {1,2,3,3,4}
>>> s2
{1, 2, 3, 4}
값이 중복될 경우에는 하나의 값만 출력됨
{}를 이용하여 빈 셋을 만들 수 없음
>>> s = {}
>>> type(s)
<class 'dict'>
>>> s = set()
>>> type(s)
<class 'set'>
set()함수를 이용하면 리스트, 문자열, 튜플, 딕셔너리로부터 중복을 제거한 셋 생성
>>> set('apple')
{'l', 'p', 'a', 'e'}
>>> set(['apple', 'banana', 'cherry', 'apple', 'cat', 'dog','dog'])
{'cherry', 'cat', 'apple', 'dog', 'banana'}
>>> set(('a','b','a','c','d'))
{'d', 'a', 'b', 'c'}
>>> set({'apple':'사과','banana':'바나나','cherry':'체리'})
{'cherry', 'banana', 'apple'}
- 중복을 허용하지 않는다.
- 순서가 없다(Unordered)
멤버십 테스트
in 연산자를 사용
일반적으로 사용되는 셋의 용도
>>> s = {1,2,3,4}
>>> 1 in s
True
>>> 5 in s
False
셋 관련 연산
교집합 구하기
>>> {1,2,3} & {2,3,4}
{2, 3}
>>> {1,2,3}.intersection({2,3,4,})
{2, 3}
합집합 구하기
>>> {1,2,3} | {2,3,4}
{1, 2, 3, 4}
>>> {1,2,3,}.union({2,3,4})
{1, 2, 3, 4}
차집합 구하기
>>> {1,2,3} - {2,3,4}
{1}
>>> {1,2,3}.difference({2,3,4})
{1}
대칭 차집합 구하기
>>> {1,2,3} ^ {2,3,4}
{1, 4}
>>> {1,2,3}.symmetric_difference({2,3,4})
{1, 4}
부분 집합 판별하기
>>> {1,2}.issubset({1,2,3})
True
>>> {1,2,3}.issubset({1,2})
False
>>> {1,2,3}.issuperset({1,2})
True
>>> {1,2}.issuperset({1,2,3})
False
>>> {1,2,3} >= {1,2}
True
>>> {1,2} >= {1,2,3}
False
>>> {1,2} >= {1,2}
True
(셋에서의 크기 비교 연산자는 서브셋 또는 슈퍼셋을 판별하는 연산자로 쓰임)
Summary
- 셋은 딕셔너리에서 값이 없이 키만 제공되는 형태의 데이터 타입으로 수학에서의 집합과 거의 같다.
- 셋은 중복된 값의 데이터가 저장되지 않는다.
- 셋의 항목으로 저장될 수 있는 값은 불변 타입의 값이다.
- 비어 있는 셋은 set()함수를 이용하여 생성하며, 하나 이상의 셋은 {}안에 콤마(,)로 구분하여 여러 항목의 값을 넣어 생성할 수 있다.
- set() 함수는 다른 시퀸스 구조의 타입을 셋으로 변환한다.
- 셋을 다루기 위한 여러 연산자와 메서드 및 함수가 제공되며, 특히 크기 비교 연산자는 서브셋/슈퍼셋을 판별하는 연산으로 사용이 된다.
'Language > Python' 카테고리의 다른 글
[Python] Ch4 - part 2. 반복문 (0) | 2021.03.29 |
---|---|
[Python] Ch4 - part 1. 조건문 (0) | 2021.03.28 |
[Python] Ch3 - part 2. 딕셔너리 (0) | 2021.03.26 |
[Python] Ch3 - part 1.리스트와 튜플 (0) | 2021.03.25 |
[Python] Ch2 - part 4. 논리 (Boolean) (0) | 2021.03.25 |