리스트에 이어 이번에는 파이썬에서 제공하는 두 번째 기본 자료구조인 튜플(tuple)을 정리한다.
튜플은 리스트와 비슷하게 순서가 있지만, 수정이 불가능하다는 특징을 가진다. 이 점 때문에 튜플은 읽기 전용 데이터나 변경되면 안 되는 값을 다룰 때 자주 사용된다.
1. 튜플이란 무엇인가
튜플(tuple)은 다음과 같은 특징을 가진다.
- 순서가 있다
- 인덱싱과 슬라이싱 가능
- 수정 불가능(immutable)
- 괄호 ( ) 로 표현
- 여러 데이터를 하나의 묶음으로 표현하는 데 적합
리스트와 비교하면 다음과 같다.
리스트 vs 튜플 비교
| 항목 | 리스트 | 튜플 |
| 기호 | [ ] | ( ) |
| 변경 | 가능 | 불가능 |
| 인덱싱 | 가능 | 가능 |
| 슬라이싱 | 가능 | 가능 |
| 추가/삭제 | 가능 | 불가능 |
| 순서 | 있음 | 있음 |
수정이 필요하면 리스트를 값이 변하지 않으면 튜플을 사용하는 것이 좋다.
2. 튜플 생성
튜플은 괄호 ( ) 안에 데이터를 쉼표로 구분해 나열한다.
시세 = (533, 504, 498, 506, 489)
print(시세)
print(type(시세))
(533, 504, 498, 506, 489)
<class 'tuple'>
튜플의 원소는 생성된 이후 변경할 수 없다.
3. 튜플 인덱싱과 슬라이싱
튜플은 순서가 있으므로 리스트와 동일한 방식으로 인덱싱과 슬라이싱이 가능하다.
시세 = (533, 504, 498, 506, 489)
print(시세[0]) # 533
print(시세[1]) # 504
슬라이싱도 동일하게 사용할 수 있다.
print(시세[0:2]) # (533, 504)
튜플을 정의할 때는 괄호 ( )를 사용하지만,
인덱싱과 슬라이싱은 리스트와 동일하게 대괄호 [ ]를 사용한다는 점을 기억해야 한다.
4. 튜플 수정 불가능
튜플은 immutable 구조이기 때문에 원소를 변경하려고 하면 에러가 발생한다.
시세 = (533, 504, 498, 506, 489)
시세[0] = 100
TypeError: 'tuple' object does not support item assignment
튜플을 사용하는 목적은 수정이 필요하지 않은 데이터를 고정된 형태로 관리하기 위함이다. 덕분에 리스트보다 메모리 사용량이 적고 더 빠르게 처리되는 경우도 많다.
5. 리스트와 튜플의 형변환
실제 개발에서는 리스트와 튜플을 필요에 따라 변환해 사용하는 경우가 많다.
리스트 → 튜플 변환
mylist = [1, 2, 3]
result1 = tuple(mylist)
print(result1)
(1, 2, 3)
튜플 → 리스트 변환
mytuple = (1, 2, 3)
result2 = list(mytuple)
print(result2)
[1, 2, 3]
형변환은 다음 원칙을 기억하면 쉽다.
- 리스트 객체 생성: list( )
- 튜플 객체 생성: tuple( )
이처럼 파이썬의 자료형은 자신의 타입 이름을 그대로 함수처럼 사용하여 형변환을 할 수 있다.
6. 정리
튜플은 리스트보다 기능은 적지만 불변성 덕분에
- 데이터가 변하지 않아야 할 때
- 메모리를 절약하고 싶을 때
- 구조화된 데이터를 고정된 형태로 유지하고 싶을 때
특히 유용한 자료구조다.
리스트와 튜플을 목적에 맞게 선택하면 코드가 보다 명확해지고 안정적인 프로그램을 작성할 수 있다.
'Python' 카테고리의 다른 글
| 딕셔너리 심화: 반복문, items(), 중첩 딕셔너리 (0) | 2025.11.25 |
|---|---|
| 파이썬 자료구조: 딕셔너리 완전 정리 (0) | 2025.11.25 |
| 파이썬 자료구조: 리스트 완전 정리 (0) | 2025.11.25 |
| 파이썬 변수와 자료형 완전 정리 (0) | 2025.11.25 |
| Jupyter Notebook 단축키 정리 (0) | 2025.11.25 |