본문 바로가기

언어/Python

[ 파이썬 / Python ] Tuple(튜플) 사용하기

반응형

Python의 튜플(Tuple)은 여러 값을 하나의 변수에 저장할 수 있는 시퀀스 자료형 중 하나입니다. 리스트와 비슷하지만, 중요한 차이점은 튜플은 변경 불가능(immutable)하다는 것입니다. 즉, 한 번 정의된 튜플의 내용은 변경할 수 없습니다. 이로 인해 튜플은 안전하게 데이터를 저장할 수 있으며, 변경되지 않아야 하는 데이터에 적합합니다.

튜플의 특징

  1. 정의: 튜플은 소괄호 ()를 사용하여 정의합니다.
  2. 변경 불가능: 한 번 생성된 튜플의 요소는 변경할 수 없습니다.
  3. 순서가 있다: 리스트와 마찬가지로 튜플도 순서가 있으며, 인덱스를 통해 접근할 수 있습니다.
  4. 중복 허용: 튜플은 중복된 값을 가질 수 있습니다.
  5. 다양한 데이터 타입: 튜플은 다양한 데이터 타입의 요소를 가질 수 있습니다.

튜플 생성

# 빈 튜플
empty_tuple = ()

# 하나 이상의 요소가 있는 튜플
single_element_tuple = (1,)
my_tuple = (1, 2, 3, "a", "b", "c")

튜플 인덱싱과 슬라이싱

my_tuple = (1, 2, 3, 4, 5)

# 인덱싱
print(my_tuple[0])  # 출력: 1
print(my_tuple[-1])  # 출력: 5

# 슬라이싱
print(my_tuple[1:4])  # 출력: (2, 3, 4)
print(my_tuple[:3])  # 출력: (1, 2, 3)
print(my_tuple[3:])  # 출력: (4, 5)
print(my_tuple[::2])  # 출력: (1, 3, 5)

튜플의 불변성

튜플은 불변(immutable)이므로, 생성 후에 요소를 변경할 수 없습니다.

my_tuple = (1, 2, 3)

# 다음 코드는 오류를 발생시킵니다.
# my_tuple[0] = 10  # TypeError: 'tuple' object does not support item assignment

# 하지만, 튜플 자체를 재할당하는 것은 가능합니다.
my_tuple = (10, 20, 30)
print(my_tuple)  # 출력: (10, 20, 30)

튜플 언패킹 (Tuple Unpacking)

튜플의 요소를 변수에 직접 할당할 수 있습니다.

my_tuple = (1, 2, 3)
a, b, c = my_tuple

print(a)  # 출력: 1
print(b)  # 출력: 2
print(c)  # 출력: 3

튜플 메서드

튜플은 불변성이기 때문에 제공되는 메서드가 제한적입니다. 기본적으로 count()index() 메서드를 사용할 수 있습니다.

my_tuple = (1, 2, 3, 2, 2, 4)

# 요소의 개수 세기
print(my_tuple.count(2))  # 출력: 3

# 요소의 인덱스 찾기
print(my_tuple.index(3))  # 출력: 2

튜플의 사용 예시

함수 반환 값으로 사용

여러 값을 반환해야 할 때 튜플을 사용합니다.

def get_coordinates():
    x = 10
    y = 20
    return x, y

coords = get_coordinates()
print(coords)  # 출력: (10, 20)

여러 변수에 값 할당

a, b, c = (1, 2, 3)
print(a)  # 출력: 1
print(b)  # 출력: 2
print(c)  # 출력: 3

튜플과 리스트 간 변환

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

my_list = [1, 2, 3]
my_tuple = tuple(my_list)
print(my_tuple)  # 출력: (1, 2, 3)

my_tuple = (4, 5, 6)
my_list = list(my_tuple)
print(my_list)  # 출력: [4, 5, 6]

튜플의 장점

  1. 불변성: 튜플은 불변이므로 데이터의 무결성을 유지할 수 있습니다.
  2. 메모리 효율성: 튜플은 리스트보다 메모리 사용이 더 적습니다.
  3. 속도: 튜플은 리스트보다 더 빠르게 동작합니다.

이와 같이 튜플은 변경되지 않아야 하는 데이터를 저장할 때 유용하며, 함수 반환 값으로 여러 값을 한 번에 반환하거나 변수에 여러 값을 할당할 때 자주 사용됩니다.

반응형