Python 복습 (13) : 튜플과 리스트

STUDY_J·2024년 7월 17일

튜플(tuple)과 리스트(list)의 관계

파이썬에서 튜플과 리스트는 모두 순서가 있는 데이터 구조로 여러 값을 저장할 수 있습니다.
둘 사이에는 몇 가지 중요한 차이점이 있지만, 그 관계와 공통점 또한 많습니다.

공통점

1) 덧셈과 곱셈 연산

튜플과 리스트 모두 덧셈(+)과 곱셈(*) 연산이 가능합니다.

# 리스트 덧셈
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)

2) 변환 가능

튜플을 리스트로, 리스트를 튜플로 변환할 수 있습니다.

  • 튜플을 리스트로 변환 => list(tuple)
  • 리스트를 튜플로 변환 => tuple(list)
# 튜플을 리스트로 변환
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)

차이점

1) 가변성 (Mutability)

리스트는 가변적(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

1-1) 예외 : 튜플 내의 리스트는 변경이 가능

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])

0개의 댓글