일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- mlops
- docker
- 파이썬
- Django
- flask
- airflow
- 웹개발
- 도커 컴포즈
- 예제프로젝트
- 플라스크
- 개발언어
- 장고 튜토리얼
- C언어
- 개발자취업
- 에어플로우 기초강의
- ADP
- c++
- 파이썬강의
- 기초강의
- 쇼핑몰예제
- c
- 장고
- Python
- 프로그래밍
- 인공지능
- cpp
- 개발자
- 장고 기초 강의
- 도커
- 파이썬 장고
- Today
- Total
TITEDIOS 편한 코딩
Python 기초강의: #17 데이터 구조 - 세트(set) 본문
이번 포스팅에서는 데이터 구조 중 마지막으로 세트에 대해서 알아보겠습니다. 파이썬은 다양한 데이터 구조를 제공하며, 그 중 세트(Set)는 고유한 요소들로 구성된 컬렉션을 다룰 때 매우 유용합니다. 세트는 순서가 없는 중복되지 않은 값들의 집합으로, 데이터 중복을 제거하고 유일한 값들을 효과적으로 관리하는데 매우 유용합니다. 이번 포스팅에서는 파이썬 세트의 주요 특징, 생성 방법, 주요 메서드 및 활용 사례에 대해 알아보겠습니다
1. 세트란 무엇일까요?
세트는 수학에서 정의하는 집합과 동일한 개념으로, 서로 다른 값들로 구성된 집합을 의미합니다. 파이썬에서는 중괄호 {}를 사용하여 세트를 만들고, 요소들은 쉼표(,)로 구분합니다. 순서가 없기 때문에 같은 값은 한 번만 저장되며, 중복된 값은 자동으로 제거됩니다.
# 세트 만들기
my_set = {1, 2, 3, 4, 1, 2}
print(my_set) # 출력: {1, 2, 3, 4}
2. 세트의 특징
고유한 요소들로 구성: 세트는 중복을 허용하지 않습니다. 즉, 동일한 값을 여러 번 추가해도 세트에는 한 번만 저장됩니다.
순서가 없음: 세트는 순서가 없는 컬렉션이므로 인덱싱이나 슬라이싱을 할 수 없습니다.
변경 가능: 세트는 요소를 추가하거나 제거할 수 있는 가변(mutable) 데이터 구조입니다.
3. 세트 생성 및 기본 사용법
세트는 두 가지 기본적인 방법으로 만들 수 있습니다. 가장 간단한 방법은 중괄호 안에 쉼표(,)로 구분하여 값들을 나열하는 것입니다. 두번째로는 set() 함수를 사용하는 것입니다. set() 함수는 리스트, 문자열, 튜플 등 다른 자료구조를 세트로 변환하는데도 사용됩니다.
# 빈 세트 생성
empty = {} # or set()
# 중괄호를 사용하여 세트 생성
fruits = {'apple', 'banana', 'cherry'}
print(fruits) # 출력: {'apple', 'banana', 'cherry'}
# set() 함수를 사용하여 세트 생성
numbers = set([1, 2, 3, 4, 5])
print(numbers) # 출력: {1, 2, 3, 4, 5}
4. 주요 메서드 및 연산
세트는 다른 데이터 구조들과 마찬가지로 다양한 메서드와 연산을 제공합니다. 자주 사용되는 메서드와 연산은 다음과 같습니다:
add()
add() 메서드를 사용하여 세트에 요소를 추가할 수 있습니다.
fruits.add('orange')
print(fruits) # 출력: {'apple', 'banana', 'cherry', 'orange'}
remove() / discard()
remove() 또는 discard() 메서드를 사용하여 요소를 제거할 수 있습니다.
fruits.remove('banana')
print(fruits) # 출력: {'apple', 'cherry', 'orange'}
fruits.discard('apple')
print(fruits) # 출력: {'cherry', 'orange'}
집합 연산
합집합, 교집합, 차집합 등의 연산을 지원합니다. 세트가 수학적을 집합과 유사하므로 집합에서 제공하는 연산을 제공합니다.
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}
in
in 연산자를 사용하여 특정 요소가 세트에 포함되어 있는지 확인할 수 있습니다.
A = {1, 2, 3}
print(3 in A) # 출력: True
print(4 in A) # 출력: False
5.활용 사례
세트는 데이터의 중복을 제거하거나, 빠른 검색 및 집합 연산이 필요한 경우에 매우 유용합니다. 몇 가지 예시를 들어 보겠습니다:
중복 제거
리스트에서 중복된 요소를 제거할 때 세트를 사용할 수 있습니다.
numbers = [1, 2, 2, 3, 4, 4, 5]
unique_numbers = set(numbers)
print(unique_numbers) # 출력: {1, 2, 3, 4, 5}
교집합 찾기
두 리스트의 공통 요소를 찾을 때 세트를 사용할 수 있습니다.
list1 = [1, 2, 3, 4]
list2 = [3, 4, 5, 6]
set1 = set(list1)
set2 = set(list2)
common_elements = set1 & set2
print(common_elements) # 출력: {3, 4}
차집합 활용
한 집합에서 다른 집합에 없는 요소들을 찾을 때 유용합니다.
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7}
difference = set1 - set2
print(difference) # 출력: {1, 2, 3}
여기서 제시한 사례는 예제를 통해 세트에 익숙해지기 위한 간단한 활용 예제입니다. 실제 개발에서는 아래와 같이 세트를 활용합니다.
- 온라인 쇼핑몰에서 상품 목록 관리: 상품 데이터베이스에서 중복된 상품을 제거하고, 고객이 이미 구매한 상품을 추적하는데 활용됩니다.
- 소셜 네트워킹 서비스에서 친구 추천: 사용자의 친구 목록에서 중복된 친구를 제거하고, 새로운 친구를 추천합니다.
결론
파이썬 세트는 중복을 제거하고 집합 연산을 효율적으로 수행하는데 매우 유용한 데이터 구조입니다. 세트의 다양한 메서드와 연산을 활용하면 데이터를 보다 효과적으로 관리하고 처리할 수 있습니다.
이번 포스팅을 끝으로 파이썬의 데이터 구조에 대해 알아보았습니다. 리스트, 튜플, 딕셔너리 그리고 세트로 이어지는 데이터 구조를 잘 학습하시면 좋겠습니다. 실제 개발 현장에서는 이러한 데이터 구조를 얼마나 잘 쓰는가가 개발 실력을 판가름할 뿐만 아니라 프로그램이 효율적으로 동작하는지를 결정하기 때문입니다. 물론, 여기까지 오신 여러분이라면 데이터 구조를 잘 활용하실 것이라고 믿어 의심치 않습니다. ㅎㅎㅎ
감사합니다!
'파이썬' 카테고리의 다른 글
Python 기초강의: #19 파일 처리(2) - 텍스트 파일과 이진 파일 (0) | 2024.07.11 |
---|---|
Python 기초강의: #18 파일 처리(1) - 파일 읽기와 쓰기 (0) | 2024.07.10 |
Python 기초강의: #16 데이터 구조 - 딕셔너리(Dictonary) (0) | 2024.07.08 |
Python 기초강의: #15 데이터 구조 - 튜플(Tuple) (2) | 2024.07.07 |
Python 기초강의: #2.5 기본 데이터 형식 - 숫자, 문자, 불리언 (0) | 2024.07.06 |