본문 바로가기
카테고리 없음

파이썬 튜플 배우기 - 변하지 않는 데이터 사용법 (Immutable Data)

by chapter21 2025. 5. 10.
파이썬 튜플 배우기 - 변하지 않는 데이터 사용법 (Immutable Data)
파이썬 튜플 배우기 - 변하지 않는 데이터 사용법 (Immutable Data)

파이썬 튜플 배우기 - 변하지 않는 데이터 사용법 (Immutable Data)

파이썬은 다양한 종류의 데이터를 편리하게 관리할 수 있도록 여러 가지 '자료구조'를 제공합니다. 그 중에서도 오늘은 특별한 특징을 가진 튜플(Tuple)에 대해 배워보겠습니다.

튜플은 여러 개의 데이터를 순서대로 모아놓은 자료구조인데, 다른 자료구조와는 다르게 한 번 만들면 그 안에 있는 데이터를 바꿀 수 없다는 특징을 가지고 있습니다. 마치 한 번 포장된 선물 상자처럼 내용물을 쉽게 바꿀 수 없는 것과 같습니다. 이러한 '변하지 않는' 성질 때문에 튜플은 프로그램의 안정성을 높이고, 데이터가 예상치 못하게 변경되는 것을 막는 데 유용하게 사용됩니다. 이번 강의를 통해 튜플이 무엇이고 어떻게 사용하는지 기본적인 내용을 익히고, 왜 '변하지 않는 데이터'를 다루는 것이 중요한지 이해하게 될 것입니다.

튜플이란 무엇일까요?

튜플은 여러 개의 데이터를 하나의 변수에 담을 수 있는 자료구조입니다. 파이썬의 다른 자료구조인 '리스트'와 비슷하지만 가장 큰 차이점은 한 번 생성되면 그 내용을 변경할 수 없다는 것입니다. 이러한 특징 때문에 튜플을 '변경 불가능한(Immutable)' 자료형이라고 부릅니다.

튜플은 주로 좌표(x, y), 날짜(년, 월, 일)와 같이 여러 정보가 모여 하나의 의미를 갖지만, 그 값이 쉽게 바뀌지 않아야 하는 경우에 사용됩니다. 튜플은 괄호 () 안에 데이터를 쉼표 , 로 구분하여 나열하여 만듭니다.

튜플 사용 예시 1: 튜플 생성 및 요소 접근하기

튜플을 만드는 가장 기본적인 방법은 괄호 ()를 사용하는 것입니다. 튜플 안에 담긴 각각의 데이터는 '요소(element)'라고 부르며, 각 요소는 순서대로 0부터 시작하는 번호(인덱스)를 가집니다. 이 인덱스를 사용하여 튜플의 특정 요소에 접근할 수 있습니다.

Python
# 도시의 위도와 경도를 튜플로 저장 seoul_location = (37.5665, 126.9780) # 요일 이름을 튜플로 저장 weekdays = ("월", "화", "수", "목", "금") # seoul_location 튜플의 첫 번째 요소 (위도)에 접근 print(seoul_location[0]) # weekdays 튜플의 세 번째 요소 (수)에 접근 (인덱스는 0부터 시작!) print(weekdays[2]) # 튜플 전체 출력 print(seoul_location) print(weekdays)

위 코드를 실행하면 다음과 같은 결과가 화면에 나타납니다.

출력 결과
37.5665

(37.5665, 126.978)
('월', '화', '수', '목', '금')

튜플 사용 예시 2: 튜플은 내용을 바꿀 수 없다! (변경 불가능)

앞서 설명했듯이 튜플의 가장 중요한 특징은 변경 불가능하다는 것입니다. 즉, 한 번 튜플을 만들면 그 안에 있는 요소를 다른 값으로 바꾸거나, 새로운 요소를 추가하거나, 기존 요소를 삭제할 수 없습니다. 만약 변경을 시도하면 파이썬은 오류를 발생시킵니다.

Python
# 변경 불가능함을 보여주는 예시 my_immutable_tuple = (10, 20, 30) # 튜플의 두 번째 요소를 바꾸려고 시도 (인덱스 1) # my_immutable_tuple[1] = 25 # 이 줄을 실행하면 TypeError가 발생합니다! # 튜플에 새 요소를 추가하려고 시도 # my_immutable_tuple.append(40) # 이 또한 AttributeError가 발생합니다! (append 함수 없음) print(f"원본 튜플: {my_immutable_tuple}") # 오류가 나기 때문에 이 줄은 실행되지 않을 수 있습니다.

위 코드에서 주석 처리된 라인(# 로 시작하는 줄)의 주석을 풀고 실행하면 다음과 같은 오류 메시지를 보게 될 것입니다.

주의:

튜플은 변경 불가능합니다. 내용을 바꾸려 하면 TypeError가 발생합니다. 데이터가 절대 변해서는 안 될 때 튜플을 사용하세요.

발생하는 오류
Traceback (most recent call last):
File "<stdin>", line 5, in <module>
TypeError: 'tuple' object does not support item assignment

튜플 사용 예시 3: 튜플 패킹(Packing)과 언패킹(Unpacking)

튜플은 여러 변수에 값을 한 번에 할당하거나, 여러 변수의 값을 하나의 튜플로 묶을 때 아주 편리하게 사용됩니다. 이를 각각 '튜플 패킹(Packing)'과 '튜플 언패킹(Unpacking)'이라고 부릅니다.

Python
# 튜플 패킹 예시: 여러 값을 쉼표로 구분하면 자동으로 튜플이 됩니다. my_info = "Alice", 30, "Seoul" # ( "Alice", 30, "Seoul" ) 과 같습니다. print(f"패킹된 튜플: {my_info}") # 튜플 언패킹 예시: 튜플의 값들을 왼쪽의 변수들에 순서대로 할당합니다. name, age, city = my_info print(f"언패킹된 값들:") print(f"이름: {name}") print(f"나이: {age}") print(f"도시: {city}")

위 코드를 실행하면 다음과 같은 결과가 화면에 나타납니다.

출력 결과
패킹된 튜플: ('Alice', 30, 'Seoul')
언패킹된 값들:
이름: Alice
나이: 30
도시: Seoul

중요:

튜플 패킹 시에는 괄호 ()를 생략해도 됩니다. 하지만 가독성을 위해 보통 사용하는 것이 좋습니다. 언패킹할 때는 튜플의 요소 개수와 변수의 개수가 같아야 합니다.

핵심 : 튜플은 여러 데이터를 순서대로 담는 자료구조이며, 한 번 만들면 그 내용을 변경할 수 없습니다. 괄호 ()로 만들고 인덱스 []로 요소에 접근합니다. 여러 변수에 값을 동시에 할당하는 언패킹에도 유용합니다.

마무리 요약

이번 강의에서는 파이썬의 튜플에 대해 상세히 살펴보았습니다. 튜플은 순서가 있는 데이터 모음이지만, 가장 큰 특징은 한 번 만들어지면 절대 변경할 수 없다는 점입니다. 이러한 변경 불가능성은 중요한 데이터를 보호하고 코드의 실수를 줄이는 데 도움을 줍니다. 또한, 여러 변수에 값을 편리하게 할당하는 '언패킹'에도 유용하게 사용됩니다.

다음 강의에서는 튜플과는 달리 자유롭게 내용을 변경할 수 있는 파이썬의 대표적인 자료구조인 '리스트(List)'에 대해 배워보겠습니다.

실제 코딩이 잘 되었는지 터미널 출력 결과도 꼭 확인하세요.

질문이 있다면 댓글에 남겨주세요.