집합과 관련된 것을 쉽게 처리하기 위해 만든 자료형
set의 특징
- 중복을 허용하지 않는다
- 순서가 존재하지 않는다 ⇒ 인덱스로 원소 값에 접근할 수 없다.
set 생성
# set 키워드 이용
s1 = set([1, 2, 3]) # {1, 2, 3}
s2 = set("Hello") # {'e', 'H', 'l', 'o'}
set 연산
- 집합 연산
a = set([0, 1, 2])
b = set([1, 2, 3, 4])
# union (합집합)
print(a | b) # {0, 1, 2, 3, 4}
print(a.union(b)) # {0, 1, 2, 3, 4}
a |= b # a = {0, 1, 2, 3, 4}
# intersection (교집합)
print(a & b) # {1, 2}
print(a.intersection(b)) # {1, 2}
a &= b # a = {1, 2}
a.intersection_update # a = {1, 2}
# difference (차집합)
print(a - b) # {0}
print(a.difference(b)) # {0}
a.difference_update(b) # a = {0}
# symmetric_difference (대칭 차집합)
print(a ^ b) # {0, 3, 4}
print(a.symmetric_difference(b)) # {0, 3, 4}
a.symmetric_difference_update(b) # {0, 3, 4}
2. set 변경
a = {1, 2, 3}
# 원소 추가
a.add(4) # {1, 2, 3, 4}
b = {2, 3, 4, 5}
a.update(b) # a = {1, 2, 3, 4, 5} # 여러 데이터를 한 번에 추가
# 원소 삭제
a.remove(2) # {1, 3, 4}
a.discard(1) # {3, 4} # 없어도 에러 발생하지 않음
a = {1, 2, 3, 4, 5}
b = {2, 3, 4, 5}
print(a.issubset(b)) # Flase # a가 b의 부분집합인가?
print(b.issubset(a)) # True # b가 a의 부분집합인가?
print(a.issuperset(b)) # True # a가 b를 포함하고 있는가?
print(b.issuperset(a)) # False # b가 a를 포함하고 있는가?
3. 원소 탐색
a = {0, 1, 2, 3, 4}
print(0 in a) # True
print(5 in a) # False
print(5 not in a) # True
'Language > python' 카테고리의 다른 글
[Python] Deep copy & shallow copy (0) | 2023.04.11 |
---|---|
[Python] Dictionary (0) | 2023.04.11 |
[Python] Tuple (0) | 2023.04.11 |
[Python] List (0) | 2023.04.11 |
[Python] 2차원 리스트 정렬 (0) | 2023.03.19 |