집합 자료형은 set 키워드를 통해 만들 수 있다.
s1 = set([1, 2, 3])
s1
=> {1, 2, 3}
s2 = set("Hello")
s2
=> {'e', 'l', 'o', 'H'}
그런데 결과에서 볼 수 있다시피 집합 자료형은 몇가지 특징이 있다.
1. 중복을 허용하지 않는다.
2.순서가 없다(Unordered).
딕셔너리나 집합과 같은 순서가 없는 자료형에서는 인덱싱을 통해 값을 얻어낼 수가 없다.
그래서 집합을 인덱싱 하고 싶을때는 아래에서처럼 리스트나 튜플의 형태로 변환해주어야 한다.
s1 = set([1, 2, 3])
lst1 = list(s1)
lst1
=> [1, 2, 3]
lst1[1]
=> 2
s1 = set([1, 2, 3])
tu1 = tuple(s1)
tu1
=> (1, 2, 3)
tu1[1]
=> 2
그리고 집합 자료형은 이름이 집합이니 만큼 우리가 중학교 고등학교때 배웠던 교집합, 합집합, 차집합을 해줄 수 있다.
s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
일 때,
교집합 구하기
s1 & s2
=> {4, 5, 6}
s1.intersection(s2)
=> {4, 5, 6}
합집합 구하기
s1 | s2
=> {1, 2, 3, 4, 5, 6, 7, 8, 9}
s1.union(s2)
=> {1, 2, 3, 4, 5, 6, 7, 8, 9}
차집합 구하기
s1 - s2
=> {1, 2, 3}
s1.difference(s2)
=> {1, 2, 3}
이미 만들어진 집합 자료형에 값을 추가하거나 삭제해줄 수도 있다.
값 1개 추가하기
s1 = set([1, 2, 3])
s1.add(4)
s1
=> {1, 2, 3, 4}
값 여러개 추가하기
s1 = set([1, 2, 3])
s1.update([4, 5, 6])
s1
=> {1, 2, 3, 4, 5, 6}
특정 값 제거하기
s1 = set([1, 2, 3])
s1.remove(2)
s1
=> {1, 3}
'Client > Python' 카테고리의 다른 글
파이썬의 자료형들 [리스트, 튜플, 딕셔너리, 집합] 3.딕셔너리 (0) | 2017.03.24 |
---|---|
파이썬의 자료형들 [리스트, 튜플, 딕셔너리, 집합] 2.튜플 (0) | 2017.03.24 |
파이썬의 자료형들 [리스트, 튜플, 딕셔너리, 집합] 1.리스트 (0) | 2017.03.24 |
파이썬 문자열 안에 변수를 대치시키는 방법 (3) | 2017.03.23 |
파이썬 에디터 파이챰 (0) | 2017.03.23 |