set()

Leejaegun·2025년 3월 19일

코딩테스트 시리즈

목록 보기
23/49

set(집합) 사용법 모음

Python의 set을 활용한 다양한 연산 방법

1️⃣ 기본적인 set 생성

s = {1, 2, 3, 4}  # 중괄호 사용
s2 = set([3, 4, 5, 6])  # 리스트를 집합으로 변환
s3 = set("hello")  # 문자열을 집합으로 변환 (중복 제거)

출력:

{'h', 'e', 'l', 'o'}

2️⃣ 집합 연산

➕ 합집합 (| 또는 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}

3️⃣ 부분 집합 & 상위 집합 체크

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)

4️⃣ 값 추가 & 삭제

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()

5️⃣ 특정 요소 존재 여부 체크

s = {1, 2, 3}
print(2 in s)  # True
print(10 in s)  # False

6️⃣ set을 활용한 문제 해결 예제

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}
profile
Lee_AA

0개의 댓글