튜플
튜플은 리스트와 매우 비슷하게 동작하는데요,튜플은 리스트와 비슷하게 여러 요소를 담을 수 있지만, 한 번 만들어진 튜플의 요소는 변경할 수 없습니다. 이 특징 때문에 튜플은 데이터를 안전하게 보관하고 싶을 때 유용하게 사용됩니다. 또한, 리스트와는 다르게 튜플은 괄호를 생략할 수 있습니다.
튜플 만들기
튜플은 소괄호 '()'를 사용하여 요소들을 감싸서 생성합니다. 하지만 괄호는 생략 가능하며, 이는 튜플만의 독특한 특징입니다.
# 튜플 생성
score = (90, 85, 70) # 소괄호 사용
score2 = 90, 85, 70 # 괄호 생략
# 빈 튜플 만들기
score = tuple()
# 요소가 하나인 튜플 만들기
score = (90, ) # 90,
# 튜플을 잘못 만든 예
score = (90)
튜플의 요소 변경 (vs 리스트)
리스트와는 달리 튜플의 요소는 변경할 수 없습니다. 이를 불변성(Immutability)라고 합니다. 이미 생성된 튜플의 요소를 변경하려고 시도하면 오류가 발생합니다.
# 튜플 요소 변경 시도
score = (90, 85, 70)
score[0] = 100 # 오류 발생
튜플 활용
튜플의 괄호 생략 가능성은 다양한 상황에서 편리합니다. 예를 들어, 여러 변수에 동시에 값을 대입하거나, 함수의 여러 반환값을 각각의 변수에 할당할 수 있습니다.
# 여러 변수에 동시에 값 대입
a, b, c = 10, 20, 30
# 함수 반환값을 각각의 변수에 대입
x, y = divmod(45, 20) # 몫과 나머지를 반환하는 divmod 함수
집합
집합은 중복을 허용하지 않고, 순서가 없는 자료형입니다. 이런 특성 덕분에 집합은 데이터 분석이나 알고리즘 문제 해결에 많이 사용됩니다.
집합 만들기
파이썬의 집합은 중괄호 {}를 사용하여 만들 수 있습니다. 각 요소는 쉼표 ,로 구분합니다. 이때, 중복된 요소가 있다면 하나만 남기고 나머지는 모두 제거됩니다.
# 집합 생성
nums = {1,2,3,4,5,6,7,8,9}
또는 set() 함수를 사용하여 다른 자료형을 집합으로 변환할 수 있습니다. 이때, 원래의 순서는 보장되지 않습니다
# 문자열을 집합으로 변환
chars = set('Hello')
집합의 정보 확인하기
len() 함수를 사용하면 집합의 요소 개수를 알 수 있습니다. 또한 in 연산자를 사용하면 특정 요소가 집합에 포함되어 있는지 확인할 수 있습니다.
# 집합 생성
members = {'홍길동', '한사랑', '일지매', '박여인'}
#소 개수 확인
print(len(members)) # 출력:4
# 원 포함 여부 확인
print('홍길동' in members) # 출력:
집합 활용하기
집합의 중요한 특성 중 하나는 중복된 요소를 자동으로 제거한다는 것입니다. 이 특성을 활용하면 리스트나 튜플에서 중복된 요소를 쉽게 제거할 수 있습니다.
# 리스트에서 중된 요소 제거
nums = [1, 2, 3, 2, 2, 3, 1, 1, 4, 5]
nums = list(set(nums)) # 출력: [1, 2, 3, 4, 5]
집합의 연산
파이썬의 집합 자료형은 합집합, 교집합과 차집합 등의 수학적 집합 연산을 지원합니다.
- 합집합: 두 집합의 모든 요소를 포함하는 집합을 만듭니다. | 연산자나 union() 메서드를 사용합니다.
- 교집합: 두 집합에 공통으로 포함된 요소만을 포함하는 집합을 만듭니다. & 연산자나 intersection() 메서드를 사용합니다.
- 차집합: 한 집합에서 다른 집합에 포함된 요소를 제거한 집합을 만듭니다. - 연산자나 difference() 메서드를 사용합니다.
- 대칭 차집합: 두 집합의 합집합에서 교집합을 제거한 집합을 만듭니다. ^ 연산자나 symmetric_difference() 메서드를 사용합니다.
# 집합 생성
set1 = {'apple', 'banana', 'cherry'}
set2 = {'banana', 'cherry', 'durian'}
# 합집합
set3 = set1 | set2
print(set3) # {'cherry', 'apple', 'banana', 'durian'}
# 교집합
set3 = set1 & set2
print(set3) # {'banana', 'cherry'}
# 차집합
set3 = set1 - set2
print(set3) # {'apple'}
# 대칭 차집합
set3 = set1 ^ set2
print(set3) # {'apple', 'durian'}
집합의 메서드
파이썬의 집합 자료형은 요소를 추가, 삭제하는 등의 작업을 위한 메서드를 제공합니다.
- add(element): 집합에 하나의 요소를 추가합니다.
- update(iterable): 집합에 여러 요소를 추가합니다.
- remove(element): 집합에서 특정 요소를 삭제합니다. 요소가 집합에 없으면 오류를 발생시킵니다.
- discard(element): 집합에서 특정 요소를 삭제합니다. 요소가 집합에 없어도 오류를 발생시키지 않습니다.
- pop(): 집합에서 임의의 요소를 삭제하고 그 요소를 반환합니다. 집합이 비어 있으면 오류를 발생시킵니다.
- clear(): 집합의 모든 요소를 삭제합니다.
# 집합 생성
fruit_set = {'apple', 'banana', 'cherry'}
# 요소 추가
fruit_set.add('durian')
print(fruit_set) # {'cherry', 'apple', 'banana', 'durian'}
# 여러 요소 추가
fruit_set.update(['grape', 'mango'])
print(fruit_set) # {'cherry', 'apple', 'grape', 'banana', 'mango', 'durian'}
# 요소 삭제
fruit_set.remove('apple')
print(fruit_set) # {'cherry', 'grape', 'banana', 'mango', 'durian'}
# 요소 삭제 (오류 무시)
fruit_set.discard('apple')
print(fruit_set) # {'cherry', 'grape', 'banana', 'mango', 'durian'}
# 임의의 요소 삭제
fruit = fruit_set.pop()
print(fruit)
print(fruit_set)
# 모든 요소 삭제
fruit_set.clear()
print(fruit_set) # set()
'PYTHON > 파이썬 기초' 카테고리의 다른 글
[PYTHON] 제어문 (IF문 조건문, FOR문 반복문) (1) | 2024.02.26 |
---|---|
[PYTHON] 딕셔너리 (0) | 2024.02.25 |
[PYTHON] 리스트 (0) | 2024.02.25 |
[PYTHON] 문자열 자료형 (0) | 2024.02.25 |
[PYTHON] 연산자와 기본 자료형 (1) | 2024.02.25 |