set(집합) 사용법 모음Python의 set을 활용한 다양한 연산 방법
set 생성s = {1, 2, 3, 4} # 중괄호 사용
s2 = set([3, 4, 5, 6]) # 리스트를 집합으로 변환
s3 = set("hello") # 문자열을 집합으로 변환 (중복 제거)
출력:
{'h', 'e', 'l', 'o'}
| 또는 union())a = {1, 2, 3}
b = {3, 4, 5}
print(a | b) # {1, 2, 3, 4, 5}
print(a.union(b)) # {1, 2, 3, 4, 5}
& 또는 intersection())print(a & b) # {3}
print(a.intersection(b)) # {3}
- 또는 difference())print(a - b) # {1, 2} (a에만 있는 요소)
print(b - a) # {4, 5} (b에만 있는 요소)
print(a.difference(b)) # {1, 2}
^ 또는 symmetric_difference())print(a ^ b) # {1, 2, 4, 5} (공통 요소 제외)
print(a.symmetric_difference(b)) # {1, 2, 4, 5}
issubset() (부분 집합인지 확인)small = {1, 2}
big = {1, 2, 3, 4}
print(small.issubset(big)) # True (small ⊆ big)
print(big.issubset(small)) # False
issuperset() (상위 집합인지 확인)print(big.issuperset(small)) # True (big ⊇ small)
add() (한 개 추가)s = {1, 2, 3}
s.add(4)
print(s) # {1, 2, 3, 4}
update() (여러 개 추가)s.update([5, 6, 7])
print(s) # {1, 2, 3, 4, 5, 6, 7}
remove() (제거, 없는 값이면 KeyError)s.remove(3)
print(s) # {1, 2, 4, 5, 6, 7}
discard() (제거, 없는 값이어도 에러 X)s.discard(10) # 에러 없음
pop() (임의의 원소 제거)s.pop() # 랜덤하게 하나 제거
print(s)
clear() (전체 삭제)s.clear()
print(s) # set()
s = {1, 2, 3}
print(2 in s) # True
print(10 in s) # False
set을 이용한 중복 제거nums = [1, 2, 2, 3, 4, 4, 5]
unique_nums = list(set(nums))
print(unique_nums) # [1, 2, 3, 4, 5]
set을 이용한 리스트 비교 (차집합 활용)allowed = "abc"
word = "abcd"
if set(word) - set(allowed):
print("제한된 문자 외의 문자가 포함됨!") # 출력됨
set을 이용한 공통 원소 찾기a = [1, 2, 3, 4]
b = [3, 4, 5, 6]
common = set(a) & set(b)
print(common) # {3, 4}