Python 튜플 (Tuple)

튜플은 Python에서 사용되는 중요한 데이터 구조 중 하나입니다. 튜플은 변경 불가능한 (immutable) 시퀀스 자료형으로, 여러 항목을 저장할 수 있으며 리스트와 유사하지만 한 번 생성하면 내용을 변경할 수 없습니다. 이 글에서는 Python 튜플의 기본 사용법, 생성, 접근, 반복, 그리고 다양한 메서드에 대해 설명하겠습니다.

튜플과 리스트의 차이점

튜플(tuple)도 리스트(list)와 마찬가지로 여러 개의 데이터를 순서대로 담아두는 데 사용합니다. 단, 튜플과 리스트는 다음과 같은 두 가지 차이점이 있다.

1) 리스트는 '[' 와 ']'를 사용하는 반면 튜플은 '('와 ')'를 사용한다. 
2) 리스트는 리스트 내의 원소를 변경할 수 있지만 튜플은 변경할 수 없다. 

Python 리스트(list)에 대한 자세한 내용은 아래 글을 참조 해라.

사실 파이썬의 튜플은 리스트에 있는 여러 기능이 빠져 있고, 반대로 리스트는 튜플이 지원하는 모든 기능을 포함하고 있으므로 튜플을 사용하지 않고 리스트라는 자료구조만 사용해도 프로그래밍하는 데 전혀 불편함이 없다. 다만 튜플은 리스트보다 속도가 빠르다는 장점이 있다. 따라서 한번 데이터를 저장해둔 후 추가하거나 삭제할 필요가 없는 경우라면 되도록 리스트보다는 튜플을 사용하는 것이 좋다

튜플 생성

다음은 튜플을 생성하는 방법으로 빈 튜플, 원소가 하나인 튜플, 원소가 여러 개인 튜플을 생성하는 예제이다.

# 빈 튜플 생성
my_tuple = ()

# 원소가 하나인 튜플은 쉼표를 포함하여 생성
single_item_tuple = (42,)

# 원소가 여러 개인 튜플
fruits = ('apple', 'banana', 'cherry')

튜플 접근

튜플 내부의 원소에 접근하려면 인덱스를 사용한다. 인덱스는 0부터 시작한다.

fruits = ('apple', 'banana', 'cherry')
print(fruits[0])  # 'apple' 출력
print(fruits[1])  # 'banana' 출력
apple
banana

튜플 반복

튜플 내부의 원소를 반복하려면 for 루프를 사용할 수 있다.

fruits = ('apple', 'banana', 'cherry')
for fruit in fruits:
    print(fruit)
apple
banana
cherry

튜플 길이

튜플의 길이를 확인하려면 len() 함수를 사용한다.

fruits = ('apple', 'banana', 'cherry')
print("투플 길이:", len(fruits))
투플 길이: 3

튜플 메서드

튜플은 변경 불가능하므로 다음과 같은 메서드가 제공된다.

  • count(): 주어진 값의 출현 횟수를 반환
  • index(): 주어진 값의 첫 번째 위치 (인덱스)를 반환
fruits = ('apple', 'banana', 'cherry', 'apple')
count = fruits.count('apple')  # count = 2
index = fruits.index('banana')  # index = 1
print(f"apple count = {count}")
print(f"banana index = {index}")
apple count = 2
banana index = 1

튜플 슬라이스

리스트에 저장된 데이터의 일부를 가져올 때 슬라이싱을 이용 하는데, [0:2]와 같은 형태로 데이터를 가져올 시작 인덱스와 끝 인덱스를 지정한다. 튜플도 리스트와 동일하게 슬라이싱이 가능하다. 다만, 튜플을 생성할 때는 ‘(‘와 ‘)’ 기호를 사용하지만 데이터에 접근하는 인덱싱이나 슬라이싱에서는 데이터의 범위를 ‘[‘와 ‘]’ 기호로 표현한다는 점을 주의해야 한다.

fruits = ('apple', 'banana', 'cherry')
print(fruits[0:2])
('apple', 'banana')

튜플은 언제 사용할까?

프로그래밍을 하다 보면 자신이 하나의 함수만 만들고, 다른 사람이 그 함수의 결과값 을 사용해야 하는 경우가 발생할 수 있다. 이때 반환해 주는 타입을 튜플로 선언하여 받아서 사용하는 사람이 마음대로 데이터를 바꾸지 못하게 할 수 있다.

잘 바뀌지 않는 데이터는 다음과 같은 것들이 있을 수 있다.

  • 학번이나 이름, 주민등록번호와 같이 변경되지 않아야 하는 정보

프로그래머가 이러한 데이터에 대한 이해 없이 마음대로 값을 변경하려고 할 때, 튜플은 이를 방지하는 기능을 한다.

참고

답글 남기기