Data Structure 2. Tuple

.·2020년 5월 11일
0

Coding

목록 보기
14/33

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

0개의 댓글