빈티지 테라피
[파이선초보탈출] Python - Sets 본문
Python의 세트(Set)는 중복을 허용하지 않는 데이터 컬렉션으로, 집합 이론의 개념을 컴퓨터 프로그래밍에 적용한 것입니다. 이 블로그 포스트에서는 Python에서 세트를 사용하는 방법과 실전 활용 예제를 다룹니다.
목차
- 세트(Set)란 무엇인가?
- 세트 생성 및 기본 연산
- 세트 생성
- 세트 추가, 제거
- 세트 연산 (합집합, 교집합, 차집합)
- 세트의 활용 예제
- 중복 제거
- 요소 검사
- 데이터베이스 조회 결과 비교
- 세트의 고급 기능
- 세트 내포
- 불변 세트 (frozenset)
- 결론
1. 세트(Set)란 무엇인가?
세트는 중복되지 않는 요소들의 모음으로, 수학적 집합과 비슷한 개념입니다. 순서가 없기 때문에 인덱싱이 불가능하고, 리스트나 튜플과는 다르게 해시 가능한 객체만 포함할 수 있습니다.
# 세트 생성 예시
fruits = {"apple", "banana", "cherry"}
print(fruits) # {'apple', 'banana', 'cherry'}
2. 세트 생성 및 기본 연산
세트 생성
세트는 {}
를 사용하여 생성할 수 있으며, 리스트나 튜플을 이용해 변환할 수도 있습니다.
# 세트 생성
fruits = {"apple", "banana", "cherry"}
# 리스트를 세트로 변환
numbers = set([1, 2, 3, 4, 5])
# 빈 세트 생성 (주의: {}는 빈 딕셔너리로 간주됨)
empty_set = set()
세트 추가, 제거
세트에 요소를 추가하거나 제거하는 방법은 다음과 같습니다.
# 요소 추가
fruits.add("orange")
print(fruits) # {'apple', 'banana', 'cherry', 'orange'}
# 요소 제거
fruits.remove("banana")
print(fruits) # {'apple', 'cherry', 'orange'}
# 요소가 없는 경우 안전하게 제거
fruits.discard("grape")
세트 연산 (합집합, 교집합, 차집합)
세트는 수학적 집합 연산을 지원합니다.
A = {1, 2, 3}
B = {3, 4, 5}
# 합집합 (Union)
print(A | B) # {1, 2, 3, 4, 5}
# 교집합 (Intersection)
print(A & B) # {3}
# 차집합 (Difference)
print(A - B) # {1, 2}
print(B - A) # {4, 5}
3. 세트의 활용 예제
중복 제거
세트를 사용하여 리스트나 문자열에서 중복 요소를 쉽게 제거할 수 있습니다.
# 리스트에서 중복 제거
items = [1, 2, 2, 3, 4, 4, 5]
unique_items = list(set(items))
print(unique_items) # [1, 2, 3, 4, 5]
요소 검사
세트는 특정 요소가 존재하는지 검사하는데 빠릅니다.
fruits = {"apple", "banana", "cherry"}
print("apple" in fruits) # True
print("grape" in fruits) # False
데이터베이스 조회 결과 비교
세트를 사용하여 두 데이터베이스 조회 결과의 차이를 비교할 수 있습니다.
db_results1 = {"John", "Alice", "Bob"}
db_results2 = {"Alice", "Bob", "Charlie"}
# 차이점 찾기
only_in_db1 = db_results1 - db_results2
only_in_db2 = db_results2 - db_results1
print(only_in_db1) # {'John'}
print(only_in_db2) # {'Charlie'}
4. 세트의 고급 기능
세트 내포
세트 내포를 사용하여 특정 조건에 맞는 요소들로 구성된 세트를 생성할 수 있습니다.
# 짝수만 포함하는 세트 생성
even_numbers = {x for x in range(10) if x % 2 == 0}
print(even_numbers) # {0, 2, 4, 6, 8}
불변 세트 (frozenset)
frozenset
은 변경할 수 없는 세트입니다. 일반 세트와 동일한 연산을 지원하지만, 요소를 추가하거나 제거할 수 없습니다.
# 불변 세트 생성
immutable_fruits = frozenset(["apple", "banana", "cherry"])
# 요소 추가 시도 (오류 발생)
immutable_fruits.add("orange") # AttributeError
5. 결론
Python의 세트는 중복을 허용하지 않는 컬렉션으로, 다양한 활용이 가능합니다. 세트를 사용하면 중복 요소 제거, 빠른 멤버십 테스트, 데이터 비교 등 다양한 작업을 효율적으로 수행할 수 있습니다. 이번 포스트에서는 세트의 기본적인 사용법부터 고급 기능까지 알아보았습니다. 이를 통해 Python 프로그래밍에서 세트를 더욱 유용하게 활용할 수 있기를 바랍니다.
'코드 테라피' 카테고리의 다른 글
코딩의 판도를 바꾸는 AI 코드 에디터, Cursor 완전 정복! (0) | 2025.04.02 |
---|---|
[파이선초보탈출] Python - Tuple Methods & Exercises (0) | 2024.07.16 |
[파이선초보탈출] Python - Unpack & Join Tuples (0) | 2024.07.12 |
[파이선초보탈출] Python - Access Tuple Item & Update Tuples (0) | 2024.07.09 |
[파이선초보탈출] Python - Tuples (0) | 2024.06.25 |