파이썬에서 튜플과 리스트는 모두 순서가 있는 데이터 구조로 여러 값을 저장할 수 있습니다.
둘 사이에는 몇 가지 중요한 차이점이 있지만, 그 관계와 공통점 또한 많습니다.
튜플과 리스트 모두 덧셈(+)과 곱셈(*) 연산이 가능합니다.
# 리스트 덧셈
list1 = [1, 2, 3]
list2 = [4, 5, 6]
print(list1 + list2) # 출력: [5, 7, 9]
# 튜플 덧셈
tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
print(tuple1 + tuple2) # 출력: (1, 2, 3, 4, 5, 6)
# 리스트 곱셈
print(list1 * 2) # 출력: [1, 2, 3, 1, 2, 3]
# 튜플 곱셈
print(tuple1 * 2) # 출력: (1, 2, 3, 1, 2, 3)
튜플을 리스트로, 리스트를 튜플로 변환할 수 있습니다.
# 튜플을 리스트로 변환
tuple1 = (1, 2, 3)
list_from_tuple = list(tuple1)
print(list_from_tuple) # 출력: [1, 2, 3]
# 리스트를 튜플로 변환
list1 = [1, 2, 3]
tuple_from_list = tuple(list1)
print(tuple_from_list) # 출력: (1, 2, 3)
리스트는 가변적(mutable)인 반면, 튜플은 불변적(immutable)입니다.
이는 리스트의 요소를 변경할 수 있지만, 튜플의 요소는 변경할 수 없다는 것을 의미합니다.
# 리스트 요소 변경
list1 = [1, 2, 3]
list1[0] = 10
print(list1) # 출력: [10, 2, 3]
# 튜플 요소 변경 시도 (오류 발생)
tuple1 = (1, 2, 3)
# tuple1[0] = 10 # TypeError: 'tuple' object does not support item assignment
t1 = (1,2,[1,2])
l1 = [1,2,[1,2]]
l1[1] = 3
print(l1) # [1, 3, [1,2]]
t1[2][0] = 4
print(t1) # (1,2, [4,2])