728x90
파이썬은 집합(고등수학에서 배우는 그 집합)을 처리하기 위한 자료형 set을 제공한다.
집합 자료형은 set()으로 선언하며, 안에 들어갈 원소들을 리스트 형태로 넘겨주면 된다.
data = set([1, 4, 9, 11, 3])
print(data)
# {1, 3, 4, 9, 11}
집합 자료형의 특징은 크게 두 가지가 있다.
- 중복값을 허용하지 않는다.
- 원소들 간 순서가 정해져있지 않다.
중복값을 허용하지 않기 때문에 동일한 값의 원소를 여러 개 넣더라도 집합 안에는 하나의 원소만 남게된다.
data = set([1, 4, 4, 4, 9, 11, 3])
print(data)
# {1, 3, 4, 9, 11}
순서를 갖지 않기 때문에 리스트처럼 인덱싱하는 것이 불가하다.
data = set([1, 4, 9, 11, 3])
print(data[0])
# TypeError: 'set' object is not subscriptable
집합 자료형의 연산
고등학교 때 배웠던 기억을 떠올려보자.
두 개 이상의 집합을 연산할 때 합집합, 차집합, 교집합이라는 개념이 있었다.
파이썬의 집합 자료형 역시 이러한 연산을 지원한다.
set_a = set([1, 3, 4, 9, 13])
set_b = set([3, 7, 9, 11])
print(set_a | set_b) # 합집합
print(set_a - set_b) # 차집합
print(set_a & set_b) # 교집합
# {1, 3, 4, 7, 9, 11, 13}
# {1, 4, 13}
# {9, 3}
집합 자료형에 값 추가, 제거
리스트와 마찬가지로 집합에 값을 추가하거나 삭제하는 연산 또한 지원한다.
값 추가
set_a = set([1, 3, 4, 9, 13])
set_a.add(99)
print(set_a)
# {1, 3, 4, 99, 9, 13}
여러 개 값 추가
set_a = set([1, 3, 4, 9, 13])
set_a.update([100, 101]) # 추가할 값들은 리스트 형태로 삽입해준다.
print(set_a)
# {1, 3, 4, 100, 101, 9, 13}
값 제거
set_a = set([1, 3, 4, 9, 13])
set_a.remove(13)
print(set_a)
# {1, 3, 4, 9}
'언어 > Python' 카테고리의 다른 글
[Python] 파이썬의 GIL (Global Interpreter Lock) (2) | 2021.10.22 |
---|---|
[Python] heapq(우선순위 큐) 사용법 (0) | 2021.09.19 |
[Python] collections 모듈의 Counter 함수 (2) | 2021.04.04 |
[Python] 10진수 숫자를 2진수 숫자로 바꿔주기 (0) | 2021.02.01 |
[Python] 반복문의 제어 continue, pass, break (0) | 2021.01.08 |