1. 정의
- List 와 마찬가지로 데이터를 순차적으로 저장할 수 있는 순열 자료구조이다.
- 하지만 List 와 다르게 한 번 정의되고 나면 수정할 수 없다. (immutable)
- 2-3 개 정도의 소규모 데이터 저장에 쓰인다.
- 함수에서 리턴 값을 한 개 이상 리턴하고 싶을 때 자주 쓰인다.
2. 장점
- 간단한 값을 빨리 표현하고 싶을 때 사용한다.
- 함수에서 리턴 값을 하나 이상 리턴하고 싶은 경우 (ex. 지도 좌표)
- 튜플을 사용하는 경우와 클래스/객체 를 사용하는 경우 비교
// Tuple을 사용하는 경우
[(1,2), (2,4)] // Array(List) 안의 Tuple
// Tuple을 안 쓰는 경우에는 class를 생성해야함
class cord:
def __init__(self, x, y):
self.x = x
self.y = y
3. 한계
- tuple 의 단점은 데이터가 무슨 의미인지 명확하지 않다는 것이다.
- 따라서 데이터의 의미를 문맥을 보고 가정해야 한다.
: 객체의 경우 키:값 쌍으로 이루어진 데이터이기 때문에 무슨 데이터인지 파악하기 쉽지만, tuple 의 경우 괄호 안에 데이터만 담겨있기 때문에 문맥에 맞게 의미를 추측해야 한다.
- 그래서 tuple 은 소규모 데이터를 다룰 때 좋다.
- 이러한 한계를 극복하기 위해 named tuple 이라는 것이 존재하기도 한다. (python)
4. 언제 사용하면 좋을까?
- array(list) 를 쓰기에는 간단한 데이터를 표현할 때 사용한다.
- tuple 이 array(list) 보다 가볍고 메모리도 적게 차지한다.
- 좌표 데이터 예시
coordinations = [
(1, 2),
(3, 4),
(5, 6)
]