반응형
집합(Set) 자료형이란?
- 수학에서의 집합과 동일한 개념으로 중복되는 원소가 없이 순서에 상관없는 데이터들의 묶음이다.
- 중복을 허용하지 않는 set의 특징은 자료형의 중복을 제거하기 위한 필터 역할로 종종 사용되기도 한다.
- List나 Tuple은 순서가 있기 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있지만, Set과 Dictionary은 순서가 없기 때문에 인덱싱으로 값을 얻을 수 없다.
집합 자료형 만들기
>>> set() # 빈 집합 자료형
>>> set([1,2,3]) # 숫자로 이루어진 집합 자료형
{1, 2, 3}
>>> set("Hello") # 문자로 이뤄진 집합 자료형
{'e', 'H', 'l', 'o'} # 중복을 허용하지 않으므로 l이 하나만 나옴
>>> set([100,70,88,25]) # 집합 순서 없으므로 원래와 순서 불일치할수도
{88, 25, 100, 70}
집합 요소에 접근
>>> l1 = list(set([1,2,3])) # 집합 자료형을 리스트로 변화
>>> l1[0]
1
>>> t1 = tuple(set([1,2,3])) # 또는 튜플로 변화
>>> t1[0]
1
집합 중복된 요소 제거
>>> a = [1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5]
>>> aSet = set(a) # a 리스트를 집합자료형 set으로 변환
>>> b = list(aSet) # 집합자료형을 리스트 자료형으로 다시 변환
>>> print(b)
[1, 2, 3, 4, 5]
집합 연산하기
- 교집합 (&, intersection 함수)
>>> s1 = set([1, 2, 3, 4, 5, 6])
>>> s2 = set([4, 5, 6, 7, 8, 9])
>>> s1 & s2 # &를 활용한 교집합 구하기
{4, 5, 6}
>>> s1.intersection(s2) # intersection 함수를 활용한 교집합 구하기
{4, 5, 6}
- 합집합 (|, union 함수)
>>> s1 | s2 # "|" 기호를 이용한 방법
{1, 2, 3, 4, 5, 6, 7, 8, 9}
>>> s1.union(s2) # union 함수를 이용
{1, 2, 3, 4, 5, 6, 7, 8, 9}
- 차집합(-, difference 함수)
>>> s1 - s2 # 빼기(-) 기호를 이용한 방법
{1, 2, 3}
>>> s2 - s1
{8, 9, 7}
>>> s1.difference(s2) # difference 함수를 이용한 방법
{1, 2, 3}
>>> s2.difference(s1)
{8, 9, 7}
집합 자료형 관련 함수들
- 값 1개 추가하기(add)
>>> s1 = set([1, 2, 3])
>>> s1.add(4) # 1개의 값만 추가(add)할 경우
>>> s1
{1, 2, 3, 4}
- 값 여러 개 추가하기(update)
>>> s1 = set([1, 2, 3])
>>> s1.update([4, 5, 6]) # 여러 개의 값을 한꺼번에 추가(update)할 때
>>> s1
{1, 2, 3, 4, 5, 6}
- 특정 값 제거하기(remove)
>>> s1 = set([1, 2, 3]) # 특정 값을 제거하고 싶을 때
>>> s1.remove(2)
>>> s1
{1, 3}
Reference
반응형
'Data > Python' 카테고리의 다른 글
[Python] 파이썬 제어문 - while 반복문, break, continue (0) | 2023.06.17 |
---|---|
[Python] 파이썬 제어문 - If, elif, 조건부 표현식 (0) | 2023.06.17 |
[Python] 파이썬 딕셔너리 자료형 - 추가, 삭제, Value 값 찾기, 함수들 (0) | 2023.06.17 |
[Python] 파이썬 튜플 자료형 - 인덱싱, 슬라이싱 (0) | 2023.06.17 |
[Python] 파이썬 리스트 자료형 - 연산, 인덱싱, 슬라이싱, 함수들 (0) | 2023.06.17 |