-
[python] 세트python 2025. 5. 23. 13:51
세트
Python의 세트(set)는 중복을 허용하지 않고, 순서가 없는 집합 자료형입니다.
수학에서의 집합(set) 개념과 유사하며, 빠른 검색, 중복 제거, 집합 연산 등에 매우 유용합니다.
📌 특징
- 중괄호 {} 또는 set() 함수로 생성
- 중복된 값 자동 제거
- 순서 없음 (인덱싱 불가능)
- 변경 가능(mutable): 값 추가/삭제 가능
- 내부 요소는 변경 불가능한(immutable) 자료형만 가능
✅ 예시
fruits = {"apple", "banana", "orange", "apple"} # 중복된 "apple"은 하나만 저장됨 print(fruits) # {'banana', 'apple', 'orange'}
🔧 주요 기능
# 요소 추가 fruits.add("grape") # 요소 제거 fruits.remove("banana") # 없는 값 제거 시 에러 발생 fruits.discard("kiwi") # 없는 값 제거해도 에러 없음 # 집합 연산 a = {1, 2, 3} b = {3, 4, 5} print(a | b) # 합집합: {1, 2, 3, 4, 5} print(a & b) # 교집합: {3} print(a - b) # 차집합: {1, 2} print(a ^ b) # 대칭차집합: {1, 2, 4, 5}
🧠 사용 예
- 리스트에서 중복 제거
my_list = [1, 2, 2, 3, 3, 3] unique = set(my_list) # {1, 2, 3}
- 회원 중복 검사, 태그 필터링, 공통 관심사 찾기 등에 사용
실습
# 집합 (set) # 중복 안됨, 순서 없음 my_set = {1,2,3,3,3} print(my_set)
{1, 2, 3}
Java = {"유재석", "김태호", "양세형"} python = set(["유재석", "박명수"]) # 교집합 (Java & python을 모두 할 수 있는 개발자) print(Java & python) print(Java.intersection(python))
{'유재석'}
{'유재석'}# 합집합 (Java를 할 수 있거나 python 할 수 있는 개발자) print(Java | python) print(Java.union(python))
{'김태호', '유재석', '박명수', '양세형'}
{'김태호', '유재석', '박명수', '양세형'}# 차집합 (Java는 할 수 있지만 python은 할 줄 모르는 개발자) print(Java - python) print(Java.difference(python))
{'양세형', '김태호'}
{'양세형', '김태호'}# python을 할 줄 아는 사람이 늘어남 python.add("김태호") print(python)
{'김태호', '박명수', '유재석'}
# Java를 까먹었어요 Java.remove("김태호") print(Java)
{'양세형', '유재석'}
'python' 카테고리의 다른 글
[python] if (조건문) (0) 2025.05.23 [python] 자료구조의 변경 (0) 2025.05.23 [python] 튜플 (0) 2025.05.23 [python] 사전 (0) 2025.05.23 [python] 리스트 (0) 2025.05.23