1. 튜플(Tuple)이란?
튜플은 리스트와 비슷하지만 수정이 불가능(Immutable) 한 자료 구조다. 소괄호(())로 만든다.
fruits = ("apple", "banana", "cherry")
nums = (1, 2, 3, 4, 5)
mixed = (1, "python", True, 3.14)
- 순서 유지 : 인덱스를 통해 값 접근 가능
- 중복 허용 : 같은 값 여러 번 저장 가능
- 불변성(Immutable) : 생성 후 값 변경 불가
- 코드 안전성 확보 및 데이터 보호에 유용
2. 인덱싱과 슬라이싱
2.1 인덱싱
fruits = ("apple", "banana", "cherry")
print(fruits[0]) # apple
print(fruits[-1]) # cherry
- 리스트와 동일하게 0부터 시작하는 인덱스 사용
- 음수 인덱스로 뒤에서 접근 가능
2.2 슬라이싱
nums = (10, 20, 30, 40, 50)
print(nums[1:4]) # (20, 30, 40)
print(nums[:3]) # (10, 20, 30)
print(nums[2:]) # (30, 40, 50)
[시작:끝]범위 지정 가능- 결과 역시 튜플 형태로 반환됨
3. 튜플의 특징
튜플은 리스트와 달리 값을 수정할 수 없다.
t = (1, 2, 3)
# t[0] = 100 → 오류 발생 (TypeError)
- 삽입 · 삭제 · 수정 불가
- 다만, 튜플 안에 리스트가 포함된 경우 그 리스트는 수정 가능
nested = (1, [2, 3], 4)
nested[1][0] = 99
print(nested) # (1, [99, 3], 4)
4. 튜플 메서드
튜플은 불변 구조이므로 메서드가 제한적이다.
nums = (1, 2, 2, 3, 4)
print(nums.count(2)) # 2
print(nums.index(3)) # 3
count(x): 값 x의 개수 반환index(x): 값 x의 위치(인덱스) 반환
5. 활용 예시
- 고정된 데이터 집합을 저장할 때 (예: 요일, 좌표)
- 함수 반환값으로 여러 값을 동시에 전달할 때
# 좌표 반환 예시
def get_position():
return (100, 200)
x, y = get_position()
print(x, y) # 100 200
- 언패킹(Unpacking) : 튜플 안의 값을 변수에 한 번에 할당 가능
person = ("Yuju", 22, "AI Student")
name, age, major = person
print(name) # Yuju
print(age) # 22
print(major) # AI Student