데이터

제로베이스 데이터사이언스 스쿨 - Part 05. 자료구조&알고리즘 with Python -18

Leah (리아) 2025. 12. 15. 11:44
반응형

Chapter 02. 자료구조 문제풀이

 

파이썬 튜플 정리: 리스트와의 차이부터 반복문 활용까지

주요 개념 요약

튜플(tuple)은 파이썬의 대표적인 자료구조 중 하나로, 여러 개의 값을 하나의 묶음으로 관리할 수 있다는 점에서 리스트와 매우 유사하다. 하지만 가장 큰 차이점은 튜플은 한 번 생성되면 내부 값을 변경할 수 없는 불변(immutable) 자료형이라는 점이다. 이 특성 때문에 튜플은 데이터가 변경되면 안 되는 상황에서 안정적으로 사용된다.

리스트와 튜플은 모두 순서(index)를 가지며, 인덱싱과 슬라이싱이 가능하다. 다만 리스트는 아이템 추가·삭제·수정이 자유로운 반면, 튜플은 이러한 연산이 불가능하다. 대신 튜플은 메모리 사용이 효율적이고, 처리 속도가 빠르며, 딕셔너리의 key처럼 변경 불가능한 값이 요구되는 위치에서 자주 사용된다.

튜플은 반복문과 함께 사용할 때 그 진가가 드러난다. for문이나 while문을 통해 튜플의 각 요소를 순차적으로 처리할 수 있으며, 구조 분해 할당을 활용하면 여러 값을 한 번에 꺼내어 사용할 수도 있다. 이러한 특성 덕분에 튜플은 고정된 데이터 묶음을 순회하거나, 함수의 반환값을 여러 개 받을 때 매우 유용하다.

코드 예시

# 리스트와 튜플의 기본 차이
my_list = [1, 2, 3]
my_tuple = (1, 2, 3)

my_list[0] = 10      # 가능
# my_tuple[0] = 10   # 오류 발생 (튜플은 수정 불가)
# 튜플 인덱싱과 슬라이싱
nums = (10, 20, 30, 40, 50)

print(nums[0])        # 10
print(nums[1:4])      # (20, 30, 40)
print(nums[::2])      # (10, 30, 50)
# for문과 튜플
scores = (90, 85, 78, 92)

total = 0
for score in scores:
    total += score

print(total / len(scores))
# while문과 튜플
fruits = ('apple', 'banana', 'cherry')
i = 0

while i < len(fruits):
    print(fruits[i])
    i += 1
# 구조 분해 할당
point = (3, 5)
x, y = point
print(x, y)

 

 

* 이 글은 제로베이스 데이터사이언스 파트타임 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.


 

💡 생각 정리

튜플을 정리하면서 가장 인상 깊었던 점은 "수정할 수 없음"이라는 제약이 오히려 장점으로 작용한다는 사실이었다. 처음에는 리스트보다 불편해 보였지만, 데이터가 실수로 변경될 위험이 없다는 점에서 코드의 안정성을 높여준다는 것을 이해하게 되었다. 특히 여러 값을 한 묶음으로 반환하거나, 변하지 않아야 하는 기준 데이터를 다룰 때 튜플은 의도를 명확하게 드러내는 자료구조라는 느낌을 받았다. 또한 반복문과 함께 사용할 때 구조가 단순해져 가독성이 좋아지는 점도 튜플의 큰 장점이라고 생각한다.


🚀 적용점

  • 함수에서 여러 개의 값을 반환할 때 튜플을 활용할 수 있다.
  • 변경되면 안 되는 설정값, 기준 데이터는 리스트 대신 튜플로 관리한다.
  • 반복문(for, while)과 함께 사용하여 고정된 데이터 집합을 안전하게 순회한다.
  • 딕셔너리의 key 등 불변성이 요구되는 위치에서 튜플을 적극적으로 활용한다.
반응형