1. 세트란?
Python의 세트(Set)는 중복된 요소를 갖지 않는 순서가 없는 컬렉션입니다. 세트는 `{}` 또는 `set()` 함수를 사용하여 생성할 수 있습니다. 리스트나 튜플과 달리, 세트는 각 요소의 위치나 삽입 순서를 기억하지 않습니다. 이로 인해 세트는 데이터의 중복을 허용하지 않아 유일한 요소만을 저장합니다.
my_set = {1, 2, 3, 4, 5, 5, 5}
print(my_set) # 출력: {1, 2, 3, 4, 5}
2. 세트의 활용
세트는 여러 가지 용도로 활용될 수 있습니다. 중복된 요소를 제거하는 데 유용하며, 또한 수학에서의 집합 연산(합집합, 교집합, 차집합 등)을 수행할 수 있습니다.
a = {1, 2, 3, 4, 5}
b = {4, 5, 6, 7, 8}
print(a.union(b)) # 합집합 출력: {1, 2, 3, 4, 5, 6, 7, 8}
print(a.intersection(b)) # 교집합 출력: {4, 5}
print(a.difference(b)) # 차집합 출력: {1, 2, 3}
3. 세트의 메서드
세트는 다양한 내장 메서드를 제공합니다. `add`, `remove`, `pop` 등의 메서드를 사용하여 세트의 요소를 추가, 제거하거나 임의의 요소를 꺼낼 수 있습니다.
my_set = {1, 2, 3}
my_set.add(4) # 4 추가
print(my_set) # 출력: {1, 2, 3, 4}
my_set.remove(1) # 1 제거
print(my_set) # 출력: {2, 3, 4}
value = my_set.pop() # 임의의 요소 꺼내기
print(value) # 출력: 2 (출력 값은 실행마다 다를 수 있음)
4. 불변 세트: frozenset
Python은 변경 불가능한 버전의 세트인 `frozenset`을 제공합니다. `frozenset`은 `set`과 동일한 메서드를 제공하지만, 한 번 생성되면 요소를 추가하거나 제거할 수 없습니다. 이러한 특성 때문에 `frozenset`은 딕셔너리의 키나 다른 세트의 요소로 사용할 수 있습니다.
my_frozenset = frozenset([1, 2, 3, 4])
print(my_frozenset) # 출력: frozenset({1, 2, 3, 4})
# my_frozenset.add(5) # 에러! frozenset은 변경할 수 없습니다.
5. 세트와 리스트, 튜플 간의 변환
세트는 리스트나 튜플로 쉽게 변환할 수 있습니다. 이를 활용하면 리스트나 튜플의 중복된 요소를 제거하는 등의 작업을 쉽게 처리할 수 있습니다.
my_list = [1, 2, 2, 3, 4, 4, 5, 5]
my_set = set(my_list) # 리스트를 세트로 변환
print(my_set) # 출력: {1, 2, 3, 4, 5}
my_new_list = list(my_set) # 세트를 리스트로 변환
print(my_new_list) # 출력: [1, 2, 3, 4, 5]
6. 결론
Python의 세트는 중복되지 않는 요소를 저장하는 데 유용한 데이터 구조입니다. 여러가지 내장 메서드를 통해 요소를 추가하거나 제거할 수 있으며, 집합 연산을 통해 여러 세트 간의 관계를 분석할 수 있습니다. 불변한 `frozenset`을 통해 딕셔너리의 키나 다른 세트의 요소로 사용할 수 있는 세트를 만들 수도 있습니다. 세트는 리스트나 튜플과 쉽게 변환할 수 있어, Python에서 데이터를 다루는 데 있어 중요한 도구 중 하나입니다.
'IT > Python' 카테고리의 다른 글
Python 프로그래밍: 회문 판별과 N-gram 만들기 (0) | 2023.05.18 |
---|---|
Python 프로그래밍: 파일 사용하기 (0) | 2023.05.18 |
Python 프로그래밍: 딕셔너리 응용하기 (0) | 2023.05.17 |
Python 프로그래밍: 문자열 응용하기 (0) | 2023.05.17 |
Python 프로그래밍: 2차원 리스트 사용하기 (0) | 2023.05.17 |