TIL[41]. Python_Tuples

jake.log·2020년 8월 23일
0

Python

목록 보기
23/39

23.Tuples

List는 데이터를 저장해주는 data sturcutre (자료구조) 라고 한다.
그리고 파이썬에는 list 외에도 여러 자료구조 들이 있는데 그중 하나가 Tuple이다.

Tuple은 list와 비슷하게 요소들을 저장할때 쓰인다.
기본적으로 tuple은 list와 동일하지만 다음과 같은 차이가 있다.

  • List는 수정이 가능하지만 tuple은 한번 선언되면 수정이 불가능하다.

    Tuple을 선언하는 문법은 다음과 같다.

my_tuple = (1, 2, 3)
  • list와 차이점은 대괄호 대신에 일반 괄호를 사용한다는 점이다.

  • Tuple의 요소들을 읽어들이는 방법, slicing은 모두 list와 동일하다.

my_tuple[0]  #요소를 읽는 법 
my_tuple[1:2] #slicing 

When to use tuples

Tuple은 왜 존재할까?
Tuple은 언제 사용할까?

Tuple은 일반적으로 2개에서 5개 사이의 요소들을 저장할때 사용되며,
특정 데이터를 ad hoc(즉석적으로) 하게 표현하고 싶을때 사용됩니다.

예를 들어, 다음의 A, B, C, D 좌표들 표현하고자 한다면 어떻게 하는게 좋을까?

A = (4, 4)
B = (5, 2)
C = (-2, 2)
D = (-3, -4)

이러한 데이터들을 표현할때 tuple을 사용하면 유용하다.

coords = [ (4,4),  (5,2),  (-2, 2),  (-3, -4) ]

이렇게 tuple은 주로 list와 같이 쓰입니다. List의 요소들로 tuple을 사용하는 것이다.

물론 list를 사용해서 동일한 데이터를 표현할 수 있다.

coords = [ [4,4],  [5,2],  [-2, 2],  [-3, -4] ]

하지만 이 경우에는 list보다는 tuple이 더 효과적!
List는 수정이 가능하고 여러 수의 요소들을 저장할 수 있도록 했기때문에 tuple보다 차지하는 메모리 용량이 더 크다. 더 많은 기능과 flexibility를 제공하기 때문에 어쩔 수 없이 용량이 커진다.
하지만 tuple은 제한적인 만큼 용량이 더 적다. 그래서 수정이 필요없고 간단한 형태의 데이터를 표현할때는 tuple을 사용하는게 훨씬 더 효과적이다.

Assignment

Input으로 주어진 list를 3개의 tuples로 구성된 리스트로 변환하여 리턴해주세요.
Input 리스트는 정확히 6개의 요소를 가지고 있습니다.

예를 들어, 다음과 같은 list를 input으로 받았다면:

my_list = [1, 2, 3, 4, 5, 6]

다음과 같이 리턴해야 합니다.

[(1,2), (3, 4), (5,6)]

My solution

def convert_list_to_list_of_tuples(my_list):
  ##이 함수를 구현해 주세요
  tuple_list = []
  tuple_list.append((my_list[0],my_list[1]))
  tuple_list.append((my_list[2],my_list[3]))
  tuple_list.append((my_list[4],my_list[5]))

  return tuple_list

Model solution

def convert_list_to_list_of_tuples(my_list):
  my_tuples = [ ]
  my_tuples.append((my_list[0], my_list[1]))
  my_tuples.append((my_list[2], my_list[3]))
  my_tuples.append((my_list[4], my_list[5]))
 
  return my_tuples
profile
꾸준히!

0개의 댓글