[Python, 기초 문법] 자료형(Data Type)(5) - Tuple, 소개 및 List와의 차이점


 

지금까지 데이터 묶음 형태의 자료형(자료 구조)인 List에 대해 알아보았습니다.

이번 포스트 에서는 데이터 묶음 형태의 자료형 중 하나인

Tuple에 대해 알아보겠습니다.




Tuple(튜플)


튜플은 리스트와 같이 여러 데이터를 하나의 묶음에 보관하는 형태를 지니고 있습니다.

다만 리스트의 경우 대괄호([])로 데이터들을 묶는 데 반해

튜플은 일반 괄호(())로 데이터를 묶어서 표현합니다.


type((1,2,3))
tuple


튜플 또한 리스트 처럼 튜플 안에 튜플, 튜플 안에 리스트가 들어갈 수 있습니다.


num_tuple=(1,2,(1,2,3))
print(num_tuple[2])
print(type(num_tuple))
print(type(num_tuple[2]))
(1, 2, 3)
<class 'tuple'>
<class 'tuple'>


튜플은 리스트 처럼 인덱싱, 슬라이싱이 가능합니다.


num_tuple = (1,2,3,4,5)
print(num_tuple[3])
print(num_tuple[2:4])
4
(3, 4)


지금까지 보면 튜플과 리스트는

표현 방식이 다르다는 점 빼고는 기능 상 별 차이가 없어보입니다.

하지만 튜플과 리스트의 차이는 존재합니다.


튜플은 자유롭게 다룰 수 있는 리스트와는 달리 내부 요소를 수정하는 것이 불가능 합니다.

아래 코드를 실행해보겠습니다.


n_ls = [1,2,3]
n_tuple = (1,2,3)
n_ls[2] = 100
print(n_ls)
n_tuple[2] = 100
print(n_tuple)
[1, 2, 100]
TypeError: 'tuple' object does not support item assignment


새로운 리스트와 튜플을 생성하고 안의 요소를 바꿔보려 했습니다.

리스트는 잘 바뀐 데 반해 튜플은 에러가 발생하는 것을 확인할 수 있습니다.

아래 코드도 실행해 봅시다.


n_ls = [1,2,3]
n_tuple = (1,2,3)
del n_ls[0]
print(n_ls)
del n_tuple[0]
print(n_tuple)
[2, 3]
TypeError: 'tuple' object doesn't support item deletion


위 코드도 이전의 결과와 마찬가지로

리스트의 요소는 제거되는 데 반해 튜플은 제거하려 할 경우 에러가 발생하는 것을 확인할 수 있습니다.


튜플은 내부 요소의 수정이 불가능하므로,

주로 데이터를 묶어서 관리하되 수정하면 안 되는 상황에서 쓰입니다.

(딕셔너리 처럼 key, value로 관리하되 튜플로 묶음 / 데이터 조회 만을 제공해야 할 때)




지금까지 튜플에 대해 알아보고 리스트와는 어떤 차이점이 있는 지 알아보았습니다.

다음 포스트에선 튜플의 몇몇 특성(활용방안 등)에 대해 알아보도록 하겠습니다.

댓글