티스토리 뷰
반응형
✅ 파이썬 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 비교
🔷 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
링크
TAG
- 문제풀이
- 인접 행렬
- 그리디알고리즘
- 그래프 탐색
- python 알고리즘
- 문제 풀이
- 코딩테스트
- dfs
- 그리디
- 백준
- 코딩 테스트
- 객체지향
- C++ 알고리즘
- DP
- 알고리즘 문제풀이
- 알고리즘
- 브루트포스
- Python
- c++알고리즘
- 문자열처리
- 알고리즘문제풀이
- C++
- 파이썬코딩
- 코딩
- 프로그래밍
- 알고리즘기초
- 동적계획법
- c언어
- 파이썬
- 동적 계획법
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함
반응형