ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [자료구조] Tuple
    about 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

    댓글

Designed by Tistory.