튜를 자료형은 리스트와 거의 같다. 다만 튜플 자료형은 한 번 생성되면 수정이 불가능하다. 즉, 앞서 리스트 인덱싱을 통해 기존 리스트의 항목을 수정할 수 있었지만 튜플의 경의 인덱싱을 통해 튜플의 항목을 확인하고 읽을 수만 있어서 수정은 불가능하다. 수정불가능성을 제외하고는 리스트와 기본적으로 동일하게 작동한다.
리스트 자료형을 나타내는 기호는 소괄호 '()'
를 사용한다.
my_list = [1, 2] # 리스트
my_tuple = (1, 2) # 튜플
리스트는 인덱싱을 통해 특정 인덱스의 항목 수정이 가능하다.
my_list[-1] = 3
print(my_list)
반면에 튜플의 경우 수정을 시도하면 오류가 발생한다.
try:
my_tuple[1] = 3
except TypeError:
print("튜플은 수정할 수 없어요.")
인덱싱을 통해 항목을 확인하여 활용할 수는 있다.
x1 = my_tuple[0]
print(x1)
소괄호 없이 쉼표(comma, 콤마)를 이용하여 항목을 나열해도 튜플로 인식된다.
other_tuple = 3, 4
type(other_tuple)
함수는 실행과정에서 하나의 값만 반환할 수 있다. 하지만 튜플을 사용하면 여러 개의 값을 동시에 반환할 수 있다.
def sum_and_product(x, y):
return (x + y), (x * y)
sp = sum_and_product(2, 3)
s, p = sum_and_product(2, 3)
print(f"sp = {sp}", f"s = {s}", f"p = {p}", sep='\n')
여러 개의 변수에 동시에 값을 할당하며 변수를 선언할 수 있다.
x, y, z = 1, 2, 3
print(f"x = {x}", f"y = {y}", f"z = {z}", sep='\n')
두 개 이상의 변수에 할당된 값들을 아래와 같이 교환할 수 있다.
x, y, z = z, y, x
print(f"x = {x}", f"y = {y}", f"z = {z}", sep='\n')
주의: 위 교환방식은 파이썬과 최신 버전의 Javascript에서는 지원되지만 예를 들어 C, Java 에서는 지원되지 않는다.