Languages/Python

[Python]튜플(tuple) 자료형에 대해 알아보자

MoonSta 2023. 4. 1. 13:06

📌튜플(tuple) 자료형에 대해 알아보자

 Python에서 리스트(list)와 유사한 자료구조인 튜플(tuple)이 있다. 리스트와 같이 여러 데이터를 담을 수 있다는 것은 리스트와 유사하지만, 초기 생성된 데이터의 값이 변경되지 않는다는 점은 리스트와 대조되는 특징이다. 초기에 생성하고 값을 계속 참조하기 위한 데이터가 필요하다면 리스트 보단 튜플 사용이 권장된다. 

 

 

📌튜플(tuple)  vs 리스트(list)

  비교하기 전에 두 자료구조는 인덱싱으로 각 요소에 접근할 수 있고, 슬라이싱으로 원하는 구간을 출력할 수 있다는 공통점이 있습니다. 비교해볼 내용은 선언과 성격입니다.

 

📌 대괄호 ‘[]’ 가 아닌 소괄호 ‘()’ 로 선언

🪓리스트(list)의 선언 방식  - 대괄호

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

#[1, 2, 3, 4, 5]

 

🪓튜플(tuple)의 선언 방식 - 소괄호

tuple = (1, 2, 3, 4, 5)
print(tuple)

#(1, 2, 3, 4, 5)

 

 

🪓튜플(tuple)의 하나의 요소만 있다면? 

tuple = (1)
print(tuple)

#한 개의 요소를 갖고 있는 튜플의 타입은 정수로 표현됨


tuple = (1,)
print(tuple)
#(1,)
#','를 사용하면 한 개의 요소도 튜플로 생성할 수 있음


🪓한 번 선언하면 값을 바꿀 수 없음(불변성)

  리스트에서는 각 요소의 값을 수정할 수 있습니다. 이것을 가변(mutable)속성이라하는데, 튜플은 불가변(immutable)속성으로 요소의 값을 변경할 수 없습니다.

 

📌 튜플의 요소 변경 하려고 한다면?

tuple = (1, 2, 3, 4, 5)
print(tuple)

#(1, 2, 3, 4, 5)

#요소 삭제
del tuple[0]	

#요소 변경
tubple[0] = 10

#################################################### 
#Traceback (most recent call last):
#File "<stdin>", line 1, in <module>
#TypeError: 'tuple' object doesn't support item deletion

#################################################### 
#Traceback (most recent call last):
#File "<stdin>", line 1, in <module>
#TypeError: 'tuple' object does not support item assignment

🪓한 번 지정된 요소를 바꿀 수 없는 튜플(tuple)의 특징으로 인해 변경, 삭제 시도 시 다음과 같은 에러가 발생한다.

 

 

📌 튜플 다루기 - 인덱싱

#인덱싱

tuple = (1, 2, 3, 4, 5)
print(tuple)

#(1, 2, 3, 4, 5)


print(tuple[0])
print(tuple[1])

#1
#2

 

 

📌 튜플 다루기 - 슬라이싱

#슬라이싱

tuple = (1, 2, 3, 4, 5)
print(tuple)

#(1, 2, 3, 4, 5

#[:] 앞뒤 끝까지.
print(tuple[:])
#(1, 2, 3, 4, 5

#[first index: ] 앞index 부터 요소 끝까지.
print(tuple[1:])
#(2, 3, 4, 5)

#[ : last index] 맨 앞부터 뒤index - 1까지 입니다.
print(tuple[:2])
#(1, 2)

 

 

📌 튜플 다루기 - 길이 구하기

#길이 구하기

tuple = (1, 2, 3, 4, 5)
print(tuple)

print(len(tuple))
#5