티스토리 뷰

반응형
파이썬 Set 완벽 정리: 개념, 메서드, 집합 연산, 값 접근 방법

✅ 파이썬 set 완벽 정리 — 개념, 메서드, 집합 연산, 값 접근 방법까지


🔷 파이썬 set이란?

파이썬의 set은 수학에서의 집합과 동일한 개념을 가진 자료형입니다.
중복되지 않는 데이터들의 모음이며, 순서가 없고, 값의 추가와 삭제가 가능합니다.


📌 set의 특징

  • 중복된 값은 하나로 처리됩니다.
  • 저장된 순서를 기억하지 않습니다.
  • 값을 변경할 수 있습니다(가변형).
a = {1, 2, 2, 3}
print(a)

출력:

{1, 2, 3}

🔷 파이썬 set 생성하기

1) 기본 생성

s = {'apple', 'banana', 'cherry'}
print(s)

출력:

{'apple', 'cherry', 'banana'}

2) 빈 set 생성

{}만 쓰면 빈 딕셔너리가 만들어집니다. 빈 set을 만들려면 set()을 사용합니다.

s = set()
print(s)

출력:

set()

3) 리스트나 튜플을 set으로 변환

lst = [1, 2, 2, 3, 4]
s = set(lst)
print(s)

출력:

{1, 2, 3, 4}

🔷 set 메서드

값 추가 — add()

s = {1, 2}
s.add(3)
print(s)

출력:

{1, 2, 3}

여러 값 추가 — update()

s = {1, 2}
s.update([3, 4], {5, 6})
print(s)

출력:

{1, 2, 3, 4, 5, 6}

값 삭제 — remove()

값이 없으면 에러 발생

s = {1, 2, 3}
s.remove(2)
print(s)

출력:

{1, 3}

값 삭제 — discard()

값이 없더라도 에러가 나지 않음

s = {1, 2, 3}
s.discard(4)
print(s)

출력:

{1, 2, 3}

모든 값 비우기 — clear()

s = {1, 2, 3}
s.clear()
print(s)

출력:

set()

🔷 set 집합 연산

합집합 — union() 또는 |

a = {1, 2, 3}
b = {3, 4, 5}
print(a.union(b))
print(a | b)

출력:

{1, 2, 3, 4, 5}
{1, 2, 3, 4, 5}

교집합 — intersection() 또는 &

print(a.intersection(b))
print(a & b)

출력:

{3}
{3}

차집합 — difference() 또는 -

print(a.difference(b))
print(a - b)

출력:

{1, 2}
{1, 2}

대칭차집합 — symmetric_difference() 또는 ^

print(a.symmetric_difference(b))
print(a ^ b)

출력:

{1, 2, 4, 5}
{1, 2, 4, 5}

🔷 set 값에 접근하기

set은 순서가 없기 때문에 인덱스로 직접 접근할 수 없습니다.
다음과 같은 코드는 에러가 납니다.

s = {10, 20, 30}
print(s[0])

출력:

TypeError: 'set' object is not subscriptable

값을 하나씩 확인하려면 — for문 사용

s = {'apple', 'banana', 'cherry'}
for item in s:
    print(item)

예시 출력:

apple
banana
cherry

(출력 순서는 실행할 때마다 달라질 수 있습니다.)


순서를 지정해 접근하려면 — list()로 변환

s = {'apple', 'banana', 'cherry'}
lst = list(s)
print(lst[0])

예시 출력:

apple

특정 값이 존재하는지 확인 — in 사용

s = {'apple', 'banana', 'cherry'}
print('banana' in s)
print('melon' in s)

출력:

True
False

🔷 frozenset

frozenset은 변경할 수 없는 set입니다.
예를 들어 딕셔너리의 키로 set을 쓰고 싶을 때 사용합니다.

fs = frozenset([1, 2, 3])
print(fs)

출력:

frozenset({1, 2, 3})

🔷 set과 list, dict 비교

자료형 중복 허용 순서 유지 값 변경
list O O O
dict(키) X X O
set X X O
frozenset X X X

🔷 set 활용 예제

중복 제거

emails = ['a@a.com', 'b@b.com', 'a@a.com']
unique_emails = list(set(emails))
print(unique_emails)

출력:

['b@b.com', 'a@a.com']

빠른 검색

s = set(range(1000000))
print(999999 in s)

출력:

True

반응형

'파이썬' 카테고리의 다른 글

파이썬 리스트와 슬라이싱 완벽 이해하기  (1) 2025.07.03
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/10   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함
반응형