-
[자료구조] Tupleabout front-end 2020. 7. 6. 14:53
1. 정의 - Tuple
Tuple 이란?
- List와 마찬가지로 데이터를 순차적으로 저장할 수 있는 순열 자료구조이다.
- 하지만 list와 다르게 한 번 정의되고 나면 수정할 수 없다.(immutable)
- 2-3개 정도의 적은 수의 소규모 데이터를 저장할 때 많이 사용한다.
- 함수에서 리턴 값을 한 개 이상 리턴하고 싶을 때 자주 쓰인다.
>>> my_tuple = (1,"2",3.0) >>> my_tuple (1, '2', 3.0) >>> for i in my_tuple: ... print(i) ... 1 2 3.0 >>> my_tuple[0] 1 >>> my_tuple[1] '2' >>> my_tuple[2] 3.0 >>> my_tuple[0] = 9 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment >>>
👉🏻Tuple Is Not For Every Language! : Python 은 tuple이 있고 JavaScript는 없다. 그렇다고 Python > JavaScript 는 아니다!
다만 JavaScript에서는 tuple을 굳이 따로 안만든것 뿐이다. Tuple은 list와 너무 비슷하기 때문에 굳이 제공하지 않는 언어도 많다. JavaScript에서는 그냥 array를 사용해도 상관없다.
2. Tuple의 장점
- Tuple은 간단한 값을 빨리 표현하고 싶을 때 많이 사용한다.
- 예를 들면 함수에서 리턴 값을 한 개 이상 리턴하고 싶을 경우 (ex. 지도 좌표)
-
Tuple을 사용하는 경우와 class/object 를 사용하는 경우를 비교해보겠다.
-
// 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의 단점은 데이터가 무슨 의미인지 명확하지 않다는 것이다.
- 데이터의 의미를 문맥을 보고 가정해야 합니다.
- 예를 들면 객체의 경우 key-value 쌍으로 이루어진 데이터이기 때문에 무슨 데이터인지 파악이 쉽지만, Tuple의 경우 괄호 안에 데이터만 담겨있기 때문에 문맥에 맞게 의미를 추측해야 합니다.
- 그렇기 때문에 Tuple은 소규모 데이터를 다루기에 적합합니다.
- cf) 이러한 단점을 극복하기 위해 Named Tuple 이란 것도 존재한다.(Python)
4. 언제 사용하면 좋을까?
- Array(List)를 쓰기에는 간단한 데이터들을 표현할 때 사용한다.
-
Tuple이 Array(List) 보다 더 가볍고 메모리더 적게 먹는다.
-
예를 들어, 좌표 데이터 :
coordinations = [ (1, 2), (3, 4), (5, 6) ]
-
'about front-end' 카테고리의 다른 글
브라우저 동작원리 (0) 2021.09.18 [자료구조] 1. Array (List) (0) 2020.07.06 [자료구조] 개요 (0) 2020.07.06 How the web works? 웹은 어떻게 동작하는가. (0) 2020.07.04 git 사용법 (상) 혼자작업편 (0) 2020.05.22