집합 자료형이란?
말그대로 '집합' 이다.
집합에 관련된 것들을 쉽게 처리하기 위해 만들어진 자료형임.
집합 자료형은 set 키워드를 이용해 만들 수 있음.
>>>s1 = set([1,2,3])
>>>s1
{1,2,3}
문자열도 가능
>>>s2 = set("Hello")
>>>s2
{'e', 'l', 'o', 'H'}
집합 자료형의 특징
위에 set("Hello") 를 보면 알겠지만
★중복을 허용하지 않음.
중복을 허용하지 않는 set의 특징은 자료형의 중복을 제거하기 위한
필터 역할로 종종 사용되기도 함.
★순서가 없다(Unordered)
리스트나 튜플과 달리 딕셔너리 처럼 순서가 없는 자료형이라
인덱싱을 지원하지 않음.
set 자료형에 저장된 값을 인덱싱으로 접근하려면 리스트나 튜플로 변환후 해야함.
>>>s1 = set([1,2,3])
>>>l1 = list(s1) ←리스트로 변환
>>>l1
[1,2,3]
>>>l1[0]
1
>>>t1 = tuple(s1) ←튜플로 변환
>>t1
(1, 2, 3)
>>>t1[0]
1
집합 자료형 활용하는 방법
교집합, 합집합 ,차집합 구하기
>>>s1 = set([1,2,3,4,5,6])
>>>s2 = set([4,5,6,7,8,9])
1. 교집합
기호
>>>s1 & s2
{4, 5, 6}
intersection 함수
>>>s1.intersection(s2)
{4, 5 ,6}
s2.intersection(s1) 을 사용해도 결과는 같음.
2. 합집합
기호
>>>s1 │ s2
{1, 2, 3, 4, 5, 6, 7, 8, 9}
이 기호 뭔지 못찾겠음 ㅡㅡ
-> 찾음 | 키는 역슬래시 \ 위의키 였음
union 함수
>>>s1.union(s2)
{1, 2, 3, 4, 5, 6, 7, 8, 9}
s2.union(s1) 을 사용해도 결과는 같음.
3. 차집합
기호
>>>s1 - s2
{1, 2, 3}
>>>s2 - s1
{8, 9, 7}
difference 함수
>>>s1.difference(s2)
{1, 2, 3}
>>>s2.difference(s1)
{8, 9, 7}
집합 자료형 관련 함수들
값 1개 추가하기(add)
>>>s1 = set([1, 2, 3])
>>>s1.add(4)
>>>s1
{1, 2, 3, 4}
값 여러 개 추가하기(update)
>>>s1 = set([1, 2, 3])
>>>s1.update([4, 5, 6])
>>>s1
{1, 2, 3, 4, 5, 6}
★update 안에 리스트던 튜플이던 문자열이던 상관없이 집합에 추가됨.
특정 값 제거하기(remove)
>>>s1 = set([1, 2, 3])
>>>s1.remove(2)
>>>s1
{1, 3}
'파이썬 복습' 카테고리의 다른 글
3/21 자료형의 값을 저장하는 공간, 변수 (0) | 2018.03.21 |
---|---|
3/21 자료형의 참과 거짓 (0) | 2018.03.21 |
3/19 딕셔너리 자료형 (0) | 2018.03.19 |
3/18 튜플 자료형 (0) | 2018.03.18 |
3/16 리스트 자료형 (0) | 2018.03.16 |