집합 자료형도 유용하게 사용될 때가 많아서
기록합니다✍️
1. 집합 자료형이란?
집합(set)은 파이썬 2.3부터 지원하기 시작한 자료형으로, 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다.
집합 자료형은 다음과 같이 set 키워드를 사용해 만들 수 있다.
비어 있는 집합 자료형은 s = set()로 만들수 있다.
s1 = set([1,2,3])
print(s1)
출력
>> {1, 2, 3}
2. 특징
- 중복을 허용하지 않는다.
- 순서가 없다(Unordered).
리스트나 튜플은 순서가 있기(ordered) 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있지만
set 자료형은 순서가 없기(unordered) 때문에 인덱싱으로 값을 얻을 수 없다.
이는 마치 딕셔너리와 비슷하다. 딕셔너리 역시 순서가 없는 자료형이라 인덱싱을 지원하지 않는다.
만약 set 자료형에 저장된 값을 인덱싱으로 접근하려면 리스트나 튜플로 변환한 후 해야 한다.
중복을 허용하지 않는 set의 특징은 자료형의 중복을 제거하기 위한 필터 역할로 종종 사용하기도 한다.
3. 교집합, 합집합, 차집합
일단, 2개의 set 자료형을 만든 후 세가지 예시를 진행한다.
s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
1) 교집합(&)
"&" 기호를 이용하면 교집합을 간단히 구할 수 있다. intersection함수를 사용해도 됨
print(s1 & s2)
print(s1.intersection(s2))
출력
>> {4, 5, 6}
>> {4, 5, 6}
2) 합집합( | )
"|"기호나 union함수를 사용하면 됨
print(s1 | s2)
print(s1.union(s2))
출력
>> {1, 2, 3, 4, 5, 6, 7, 8, 9}
>> {1, 2, 3, 4, 5, 6, 7, 8, 9}
3) 차집합(-)
"-"기호나 difference함수를 사용하면 됨
print(s1-s2)
print(s1.difference(s2))
출력
>> {1, 2, 3}
>> {1, 2, 3}
4. 관련 함수들
1) 값 1개 추가하기(add)
s1 = set([1,2,3])
s1.add(4)
print(s1)
출력
>> {1, 2, 3, 4}
2) 값 여러개 추가하기(update)
s1 = set([1,2,3])
s1.update([4,5,6])
print(s1)
출력
>> {1, 2, 3, 4, 5, 6}
3) 특정값 제거하기(remove)
s1 = set([1,2,3])
s1.remove(2)
print(s1)
출력
>> {1, 3}
'Language > Python' 카테고리의 다른 글
[Python] 정규표현식(Regular Expression) (0) | 2020.01.05 |
---|---|
[Python] 리스트, 문자열 변환 (0) | 2019.12.30 |
[Python] 리스트 인덱스와 값 동시 접근 (enumerate) (0) | 2019.12.29 |
[Python] 문자열 나누기 (split함수) (0) | 2019.12.29 |
[Python] 순열, 조합 모듈 (combinations, permutations) (0) | 2019.12.29 |