🔥 세트와 프로즌세트
438자
5분
이 장에서는 파이썬에서 사용되는 데이터 구조 중 "세트(Set)"와 "프로즌세트(Frozenset)"에 대해 자세히 알아보겠습니다. 세트와 프로즌세트는 중복을 허용하지 않고 고유한 값을 저장하는 데 사용되며, 파이썬 기초를 마스터하는 데 중요한 역할을 합니다. 이 장에서는 세트와 프로즌세트의 개념, 활용 방법, 그리고 다양한 예제를 통해 쉽게 이해할 수 있도록 설명하겠습니다.
세트와 프로즌세트란?
세트는 파이썬의 내장 데이터 타입 중 하나로, 중복을 허용하지 않고 순서가 없는 값을 저장하는 자료구조입니다. 세트는 중괄호 {}
를 사용하여 생성하며, 각 요소는 쉼표로 구분됩니다.
프로즌세트는 세트와 유사하지만, 불변(immutable)한 자료구조입니다. 따라서 프로즌세트의 요소를 수정할 수 없습니다.
예를 들어, 세트와 프로즌세트를 생성하는 방법은 다음과 같습니다.
my_set = {1, 2, 3, 4, 5} # 세트 생성 my_frozenset = frozenset([1, 2, 3, 4, 5]) # 프로즌세트 생성
python
세트의 기본 연산
세트의 기본 연산에 대해 알아봅시다.
요소 추가
add()
메서드를 사용하여 세트에 새로운 요소를 추가할 수 있습니다.
my_set.add(6) # 세트에 6을 추가
python
요소 제거
remove()
메서드를 사용하여 세트에서 특정 요소를 제거할 수 있습니다.
my_set.remove(3) # 세트에서 3을 제거
python
교집합, 합집합, 차집합
세트 간의 교집합, 합집합, 차집합 연산을 수행할 수 있습니다.
set1 = {1, 2, 3} set2 = {3, 4, 5} intersection = set1.intersection(set2) # 교집합: {3} union = set1.union(set2) # 합집합: {1, 2, 3, 4, 5} difference = set1.difference(set2) # 차집합: {1, 2}
python
프로즌세트의 불변성
프로즌세트의 불변성에 대해 알아봅시다.
요소 추가와 제거
프로즌세트는 불변하기 때문에 요소를 추가하거나 제거할 수 없습니다.
my_frozenset.add(6) # 오류 발생: 프로즌세트는 수정할 수 없음 my_frozenset.remove(3) # 오류 발생: 프로즌세트는 수정할 수 없음
python
세트와 프로즌세트 활용
세트와 프로즌세트의 활용 예제를 살펴봅시다.
중복 제거
세트는 중복을 허용하지 않으므로 리스트나 튜플에서 중복 요소를 제거할 때 유용합니다.
my_list = [1, 2, 2, 3, 4, 4, 5] unique_set = set(my_list) # 중복 제거
python
멤버십 확인
세트는 멤버십(원소가 포함되어 있는지 여부)을 빠르게 확인할 수 있습니다.
my_set = {1, 2, 3, 4, 5} is_member = 3 in my_set # True 반환
python
연습문제
- 다음 두 세트를 생성하고, 교집합과 합집합을 구하세요.
set1 = {1, 2, 3, 4, 5} set2 = {3, 4, 5, 6, 7}
python
- 주어진 리스트에서 중복된 요소를 제거하고 세트로 변환하세요.
my_list = [2, 4, 2, 7, 9, 4, 1]
python
- 프로즌세트를 사용하여 두 개의 집합을 생성하고, 두 집합의 합집합을 구하세요.
frozenset1 = frozenset({1, 2, 3}) frozenset2 = frozenset({3, 4, 5})
python
- 다음 세트에서 요소 5를 제거하세요.
my_set = {1, 2, 3, 4, 5}
python
- 주어진 두 세트에서 차집합을 구하세요.
set1 = {1, 2, 3, 4, 5} set2 = {3, 4, 5, 6, 7}
python
- 프로즌세트를 사용하여 요소를 추가하려고 할 때 발생하는 오류를 설명하세요.
- 세트를 사용하여 멤버십을 확인하는 예제를 제시하세요.