데이터

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

Leah (리아) 2025. 12. 8. 11:00
반응형

Chapter 01. 자료구조

 

파이썬 튜플(Tuple) — 길이, 결합, 슬라이싱 완전 정리

튜플은 리스트와 비슷하지만 값을 변경할 수 없는(immutable) 자료형이다.
이번 글에서는 튜플의 기본 연산인 길이 확인 → 결합 → 슬라이싱까지 한 번에 정리한다.


1. 주요 개념 요약

✔ 1) 튜플의 길이 확인

  • len() 함수를 사용해 튜플의 전체 아이템 개수를 구한다.
  • 리스트와 동일하게 작동한다.

2) 튜플 결합

튜플은 값을 변경할 수 없기 때문에, 리스트처럼 extend() 사용이 불가능하다.
따라서 + 연산자로 새로운 튜플을 만들어 결합해야 한다.

  • 예:
     
(1, 2, 3) + (4, 5)  →  (1, 2, 3, 4, 5)

 

⚠ 튜플에 1개의 값만 추가할 때는 (값, )처럼 콤마를 꼭 붙여야 튜플로 인식한다.


✔ 3) 튜플 슬라이싱

리스트와 동일하게 슬라이싱 문법을 사용할 수 있다.

  • tuple[start:end]
  • tuple[:n]
  • tuple[n:]
  • tuple[::-1] (역순)

튜플도 순서가 있기 때문에 슬라이싱이 가능하다.


2. 코드 예시 모음

튜플 길이 확인

 
heroes = ('아이언맨', '토르', '헐크', '스파이더맨')
print(len(heroes))  # 4

✔ 튜플 결합 예시 (중복 없이 결합)

파일 예제 기반

myFavoriteNumbers = (1, 3, 5, 6, 7)
friendFavoriteNumbers = (2, 3, 5, 8, 10)

print('myFavoriteNumbers:', myFavoriteNumbers)
print('friendFavoriteNumbers:', friendFavoriteNumbers)

for number in friendFavoriteNumbers:
    if number not in myFavoriteNumbers:
        myFavoriteNumbers = myFavoriteNumbers + (number, )

print('결과:', myFavoriteNumbers)

 

결과

(1, 3, 5, 6, 7, 2, 8, 10)

 


튜플 슬라이싱 예시

 
numbers = (10, 20, 30, 40, 50, 60)

print(numbers[1:4])   # (20, 30, 40)
print(numbers[:3])    # (10, 20, 30)
print(numbers[3:])    # (40, 50, 60)
print(numbers[::-1])  # (60, 50, 40, 30, 20, 10)

 

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


 

💡 생각 정리

튜플은 리스트에 비해 수정이 불가능하다는 제약이 있지만, 반대로 데이터의 안정성이 보장되는 구조라는 장점이 있다.
길이 확인, 결합, 슬라이싱 모두 리스트처럼 사용할 수 있어 학습 난이도도 높지 않았다. 특히 결합 시 extend()가 안 되고 반드시 +로 새로운 튜플을 생성해야 한다는 점이 핵심적으로 느껴졌다.

또한 실습 예제처럼 반복문을 통해 새로운 값을 조건부로 추가하는 과정은 "튜플도 조작 가능하다"는 착각을 줄여주고, 결과적으로는 불변 객체를 다루는 방식을 더 잘 이해하는 데 도움이 되었다.


🚀 적용점

 

  • 데이터를 불변 상태로 유지해야 하는 상황에서 리스트 대신 튜플 사용하기
  • 여러 개의 결과값을 함수에서 반환할 때 튜플 활용
  • 튜플 결합을 통해 여러 데이터 세트를 병합하는 로직 구성
  • 슬라이싱을 사용하여 특정 구간의 데이터를 안전하게 추출
  • 중복 제거 결합 로직을 활용하여 실무에서도 간단한 정제 작업 적용

 

반응형