[자료구조] 2. Tuple

lilyoh·2020년 8월 3일
0

자료구조

목록 보기
1/3

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)
]

0개의 댓글