List와 달리 각 요소를 수정할 수 없는 특징을 가지는 Data Structure
선언 시, ()를 이용 ex. my_tuple = (1, 2, 3)
일반적으로 1~5개 내외의 요소 저장 시 사용됨
특정 데이터를 ad hoc(즉석으로)하게 표현하고 싶을 때 사용
🍎 좌표 평면에서의 점을 나타낼 때 사용
위의 경우, 리스트보다 튜플을 사용하는 것이 훨씬 효과적인데 그 이유는
- 리스트를 이용할 경우, 값이 변경될 염려가 있다
- 리스트가 상대적으로 메모리 용량이 더 크므로, 튜플을 쓰는 것이 메모리 관리 차원에서 효율적이다.
아래는 내가 풀었던 튜플 문제와 나의 답안이다
문제 분석
1. 먼저 tuples를 요소로 가지는 "리스트"를 리턴하는 것(요소: tuples, 전체: list)
2. 리스트에 있는 요소들을 (), (), () 튜플 모양으로 잘라서
3. 리스트 속에 요소 단위로 넣자
def convert_list_to_list_of_tuples(my_list):
tuple_a = tuple(my_list[0:2])
tuple_b = tuple(my_list[2:4])
tuple_c = tuple(my_list[4:6])
a= [tuple_a, tuple_b, tuple_c]
return a
언뜻 간단해보이는 이 답을 내기까지 힘들었던 것은
리턴 직전의 a=[tuple_a, tuple_b, tuple_c]
부분에서
자꾸만 a = [tuple_a+tuple_b+tuple_c]
라고 써서,
요소 요소간의 (소괄호) 가 사라지고 그냥 [1, 2, 3, 4, 5, 6]
이라고 구현되는 것이었다. ㅠㅠ
그리고 아래는 모델 앤써
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
빈 리스트를 하나 먼저 선언해 놓은 후
빈 리스트에 append 함수를 이용하여 요소를 붙이는 형식으로 접근했다.
(append()를 사용하면서 속에 요소 값으로 my_list[0], my_list[1]
식으로 +
가 아니라 ,
로 엮는 것도 주의해야겠다.)