데이터

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

Leah (리아) 2025. 12. 16. 11:25
반응형

Chapter 02. 자료구조 문제풀이

파이썬 튜플(Tuple) 심화 정리

주요 개념 요약

이번 글은 튜플과 리스트의 차이, 튜플 아이템 정렬, 튜플과 for문, 튜플과 while문을 하나의 흐름으로 정리한 글이다. 튜플은 변경 불가능(immutable)한 자료구조라는 핵심 특성을 중심으로, 언제 튜플을 선택해야 하는지와 반복문에서 어떻게 활용되는지를 이해하는 데 목적이 있다.

튜플은 한 번 생성되면 내부 값을 수정할 수 없기 때문에, 데이터의 안정성의도 보존이 중요한 상황에서 적합하다. 반면 리스트는 수정과 확장이 자유로워 처리 과정이 많은 경우에 유리하다.


리스트와 튜플의 차이

리스트(list)와 튜플(tuple)은 모두 여러 값을 하나로 묶는 시퀀스 자료형이지만, 가장 큰 차이는 수정 가능 여부이다.

  • 리스트: 아이템 추가, 삭제, 수정 가능
  • 튜플: 아이템 추가, 삭제, 수정 불가
nums_list = [1, 2, 3]
nums_list[0] = 10   # 가능

nums_tuple = (1, 2, 3)
# nums_tuple[0] = 10  # 오류 발생

이 차이로 인해 튜플은 읽기 전용 데이터, 고정된 설정값, 변하지 않아야 하는 기준 데이터에 자주 사용된다.


튜플 아이템 정렬

튜플 자체는 수정이 불가능하므로 sort() 같은 메서드를 사용할 수 없다. 대신 sorted() 함수를 사용해 새로운 리스트를 반환받는 방식으로 정렬한다.

scores = (88, 95, 70, 100)
sorted_scores = sorted(scores)
print(sorted_scores)  # [70, 88, 95, 100]

필요하다면 다시 튜플로 변환할 수도 있다.

sorted_tuple = tuple(sorted(scores))

이 과정은 "원본 데이터는 보존하면서 정렬된 결과만 활용"하고 싶을 때 매우 유용하다.


튜플과 for문

튜플은 시퀀스 자료형이기 때문에 for문과 매우 잘 어울린다. 특히 여러 개의 고정된 데이터 묶음을 순회할 때 가독성이 좋다.

students = ('철수', '영희', '민수')

for name in students:
    print(name)

인덱스와 값을 동시에 다루고 싶다면 enumerate()를 함께 사용할 수 있다.

for idx, name in enumerate(students):
    print(idx, name)

튜플은 구조 분해 할당과도 자연스럽게 연결되어, 반복문 안에서 의미 있는 변수명을 사용할 수 있게 해준다.


튜플과 while문

while문에서는 인덱스를 직접 제어하며 튜플을 순회한다. 튜플의 길이는 변하지 않기 때문에, 반복 조건이 명확해진다는 장점이 있다.

nums = (10, 20, 30, 40)
i = 0

while i < len(nums):
    print(nums[i])
    i += 1

이 방식은 반복 조건을 세밀하게 제어해야 하거나, 특정 조건에서만 인덱스를 이동시켜야 할 때 유용하다.

 

 

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


 

💡 생각 정리

튜플은 단순히 "리스트의 불편한 버전"이 아니라, 의미적으로 변하면 안 되는 데이터를 표현하기 위한 도구라는 점이 중요하다고 느꼈다. 특히 정렬이나 반복문 예제를 통해, 튜플은 직접 바꾸기보다는 가공된 결과를 새로 만들어 사용하는 방식이 기본 철학이라는 것이 명확해졌다. 반복문과 결합했을 때도 구조가 단순해져, 코드의 의도가 더 분명하게 드러난다는 장점이 있다.


🚀 적용점

  • 설정값, 기준값, 좌표 데이터처럼 변하지 말아야 하는 데이터는 튜플로 선언한다.
  • 정렬이나 가공이 필요한 경우 sorted()를 사용해 원본 튜플을 보존한다.
  • 단순 순회는 for, 인덱스 제어가 필요한 경우 while을 사용한다.
  • 리스트와 튜플을 기능이 아닌 의도 기준으로 선택하는 습관을 들인다.
반응형