본문 바로가기

BLOG/파이썬 기초

[파이썬] 튜플(Tuple) 이것만 알자!

 

1. 튜플(Tuple)과 리스트(List)의 차이는?

튜플(Tuple)은 리스트와 같이 여러 개의 데이터를 담아주는 자료형 구조로, 리스트와 비슷한 기능을 합니다.

하지만 리스트는 '[', ']'를 사용하는 반면, 튜플은 아래 코드와 같이 '(', ')'을 사용합니다.

 

list1 = [1, 2, 3, 4, 5]
tuple1 = (1, 2, 3, 4, 5)

 

한편, 튜플은 리스트보다 처리 속도가 더 빠르다고 하는데요, 데이터가 엄청 많을 때 튜플의 처리 속도가 더 빠르다는 것을 확인할 수 있습니다.

 

또한, 리스트는 데이터를 추가하거나 수정 및 변경이 가능한데요, 튜플은 처음에 지정하고 그 이후에 수정 및 변경이 불가능하답니다. 따라서 튜플의 원소를 수정하려고 하면 아래와 같이 에러가 나는 것을 확인할 수 있습니다.

 

 

tuple1[0] = 10 #첫번째 원소를 바꾸는 코드

 

TypeError                                 Traceback (most recent call last)
<ipython-input-32-14e162ff7442> in <module>
----> 1 tuple1[0] = 10

TypeError: 'tuple' object does not support item assignment

 

위 에러내용을 보면 '튜플' 형식은 항목 수정을 지원하지 않음을 알 수 있습니다.

 

 

2. 튜플 인덱싱

한편, 튜플을 인덱싱 할 땐 리스트를 인덱싱 할 때와 같이 동일하게 하면 되는데요, 만약 tuple1 이라는 튜플에서 첫 번째 원소를 인덱싱 하고 싶다면 다음과 같이 입력하면 됩니다.

 

tuple1 = (1, 2, 3, 4, 5)
print(tuple1[0])

 

0

 

또한 특정 범위도 지정해서 인덱싱 할 수 있습니다.

 

print(tuple1[1:3])

 

(2, 3)

 

 

3. 튜플을 리스트로, 리스트를 튜플로

한편, 각 특성에 맞게 튜플과 리스트 형식을 사용하면 되는데요, 만약 튜플을 리스트로, 리스트롤 튜플로 바꾸고 싶을 수 있습니다. 변경 방법은 매우 간단한데요, 아래 코드처럼 입력하면 됩니다.

 

#tuple to list
tuple1 = (1, 2, 3, 4, 5)

new_list = list(tuple1)

print(new_list)
print(type(new_list))

 

[1, 2, 3, 4, 5]
<class 'list'>

 

간단하게 list() 안에 tuple 데이터를 넣으면 list로 변환이 되는데요, 변경 후 type을 살펴보면 리스트로 바뀌었음을 확인할 수 있습니다.

 

반면, 리스트를 튜플로 변경하는 방법도 동일합니다.

 

#list to tuple
list1 = [1, 2, 3, 4, 5]

new_tuple = tuple(list1)

print(new_tuple)
print(type(new_tuple))

 

1, 2, 3, 4, 5)
<class 'tuple'>

 

마찬가지로 tuple() 안에 리스트 데이터를 넣으면 튜플 형식으로 전환된답니다.

 

 

이렇게 튜플에 대한 기능을 전반적으로 알아보았는데요, 상황에 맞게 잘 사용하시기 바랍니다!