Python Tuple, 불변 데이터 구조
Python의 튜플(Tuple)은 흔히 리스트와 혼동되지만, 불변(immutable)이라는 결정적인 특징을 지닙니다. 이 특성 덕분에 튜플은 데이터 보호, 메모리 효율, 딕셔너리 키 또는 세트의 요소 등 특정 상황에서 독보적인 역할을 수행합니다. 본 글에서는 튜플의 구조적 이해부터 활용, 고급 기능까지 실전 예제와 함께 체계적으로 설명합니다.

목차
1. 튜플이란 무엇인가?
튜플은 순서가 있고 변경 불가능한 데이터의 집합입니다. Python에서 튜플은 소괄호(())로 정의하며, 다음과 같은 특징을 가집니다:
- 다양한 타입의 값 저장 가능
- 변경 불가능 (불변)
- 해시 가능하여 딕셔너리 키로 사용 가능
example = (1, "apple", 3.14)
2. 튜플과 리스트의 차이점
| 특징 | 리스트 (list) | 튜플 (tuple) |
|---|---|---|
| 가변성 | 가변 | 불변 |
| 표기 | [] |
() |
| 속도 | 느림 | 빠름 |
| 메모리 사용 | 높음 | 낮음 |
| 딕셔너리 키 사용 | 불가능 | 가능 |
3. 튜플 생성 방법
튜플은 다양한 방식으로 생성할 수 있으며, 쉼표가 핵심입니다.
- 일반 생성:
(1, 2, 3) - 소괄호 생략 가능:
1, 2, 3 - 단일 요소 튜플:
(5,)※ 쉼표 필수! - 함수 사용:
tuple([1, 2, 3])
t1 = (10,)
t2 = tuple("abc") # ('a', 'b', 'c')
4. 튜플 접근 및 슬라이싱
튜플은 인덱스를 통해 요소에 접근하며, 리스트와 동일한 슬라이싱 문법을 따릅니다.
- 인덱스 접근:
t[0] - 슬라이싱:
t[1:3] - 길이 확인:
len(t)
t = (10, 20, 30, 40)
print(t[1]) # 20
print(t[-1]) # 40
print(t[1:3]) # (20, 30)

5. 튜플의 실전 활용 예제
- 딕셔너리의 키로 사용
- 좌표, RGB 등 고정된 구조 표현
- 다중 반환값 처리
def get_status():
return (200, "OK")
code, message = get_status()
6. Packing과 Unpacking 이해하기
Python의 튜플은 자동적으로 Packing과 Unpacking을 지원합니다.
- Packing: 여러 값을 하나로 묶음
- Unpacking: 튜플을 개별 변수로 분해
t = 1, 2, 3
a, b, c = t
*args와의 결합을 통해 함수 인자 가변 처리도 가능합니다.
7. 튜플 사용 시 모범 사례
- 변경되지 않아야 할 값은 리스트 대신 튜플 사용
- 코드 가독성과 의미 전달을 위해 이름 있는 튜플 활용 (
collections.namedtuple) - 튜플 안에 리스트를 포함할 경우, 변경 가능성에 주의
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print(p.x) # 1
'프로그래밍 언어 > 파이썬' 카테고리의 다른 글
| Python Set, 중복 없는 자료 구조의 힘 (0) | 2025.06.21 |
|---|---|
| 파이썬 리스트 내장 함수 정리, 효율적인 데이터 관리 (0) | 2025.05.08 |
| Python bool, Boolean 연산과 비트 연산의 차이점 (0) | 2025.04.29 |
| 파이썬 복소수 연산, complex를 활용한 수학 계산 (0) | 2025.04.23 |
| Python 문자열 연산(str): 합치기, 나누기, 포매팅 (0) | 2025.04.17 |