반응형
안녕하세요
이번에는 파이썬 자료형 중에 튜플에 대해서 알아 보도록 하겠습니다
파이썬에서 튜플(tuple)은 여러 개의 값을 저장할 수 있는 불변(immutable) 시퀀스 자료형입니다. 튜플은 값이 한 번 정해지면 변경할 수 없습니다. 대괄호([])로 감싸는 리스트와 달리, 튜플은 소괄호(())로 감싸서 표현합니다. 튜플은 리스트와 비슷한 기능을 제공하지만, 불변성을 가지므로 값의 변경이 필요 없는 경우에 사용됩니다.
튜플의 생성
튜플은 소괄호를 사용하거나 쉼표로 구분된 값을 나열하여 생성할 수 있습니다.
# 빈 튜플
empty_tuple = ()
# 하나의 요소를 가진 튜플 (쉼표를 반드시 사용)
single_element_tuple = (42,)
# 여러 요소를 가진 튜플
multiple_elements_tuple = (1, 2, 3)
# 다른 자료형의 요소를 가진 튜플
mixed_tuple = (1, "hello", 3.14, True)
# 튜플을 생성할 때 소괄호는 생략 가능
tuple_without_parentheses = 1, 2, 3
튜플의 접근과 슬라이싱
튜플의 요소에 접근하거나 부분을 가져오기 위해 리스트와 같은 방식으로 인덱싱과 슬라이싱을 사용할 수 있습니다.
t = (1, 2, 3, 4, 5)
# 인덱싱
print(t[0]) # 출력: 1
print(t[1]) # 출력: 2
print(t[-1]) # 출력: 5
# 슬라이싱
print(t[1:4]) # 출력: (2, 3, 4)
print(t[:3]) # 출력: (1, 2, 3)
print(t[2:]) # 출력: (3, 4, 5)
튜플의 불변성
튜플은 불변이기 때문에 생성 후에는 요소를 변경할 수 없습니다. 다음과 같은 작업은 오류를 발생시킵니다.
t = (1, 2, 3)
# 요소 변경 시도 (오류 발생)
# t[0] = 10 # TypeError: 'tuple' object does not support item assignment
튜플 사용 예
여러 값의 반환
함수에서 여러 값을 반환할 때 튜플을 사용할 수 있습니다.
def get_min_max(numbers):
return min(numbers), max(numbers)
min_val, max_val = get_min_max([3, 8, 1, 6, 0])
print(f'Min: {min_val}, Max: {max_val}') # 출력: Min: 0, Max: 8
튜플 언패킹
튜플을 사용하여 여러 변수에 값을 한 번에 할당할 수 있습니다.
t = (1, 2, 3)
a, b, c = t
print(a, b, c) # 출력: 1 2 3
# 튜플 언패킹을 이용한 변수 교환
a, b = b, a
print(a, b) # 출력: 2 1
불변성 요구 상황
데이터의 무결성을 유지하기 위해 값이 변경되지 않도록 해야 하는 경우 튜플을 사용합니다. 예를 들어, 좌표와 같은 고정된 데이터는 튜플로 표현하는 것이 좋습니다.
# 2D 좌표를 나타내는 튜플
point = (10, 20)
# 점의 좌표를 변경할 수 없도록 튜플 사용
# point[0] = 30 # TypeError: 'tuple' object does not support item assignment
튜플 메서드
튜플은 리스트에 비해 제한된 메서드를 제공하지만, 여전히 몇 가지 유용한 메서드가 있습니다.
t = (1, 2, 3, 2, 4, 2)
# 요소의 개수 세기
print(t.count(2)) # 출력: 3
# 요소의 인덱스 찾기
print(t.index(3)) # 출력: 2
튜플의 장점
- 불변성: 튜플은 변경할 수 없기 때문에 데이터의 무결성을 보장할 수 있습니다.
- 메모리 사용 효율: 리스트보다 메모리 사용이 효율적입니다.
- 읽기 전용: 데이터 변경을 방지하고 싶을 때 사용합니다.
- 사용 용이성: 튜플을 사용하여 코드의 명확성과 안전성을 높일 수 있습니다.
튜플은 리스트와 함께 파이썬에서 중요한 시퀀스 자료형 중 하나로, 다양한 상황에서 유용하게 사용됩니다.
반응형
'파이썬 > 자료형' 카테고리의 다른 글
파이썬 자료형 - 집합(set) (0) | 2024.07.30 |
---|---|
파이썬 자료형 - 딕셔너리 (0) | 2024.07.30 |
파이썬 자료형 - 리스트 (0) | 2024.07.30 |
파이썬 자료형 - 문자형 (0) | 2024.07.27 |
파이썬 자료형 - 숫자형 (0) | 2024.07.27 |