❰튜플 자료형❱
-튜플 자료형에 대해 배워봅시다.
튜플은 CS용어로도 구분 될 수 있습니다. cs용어로써의 튜플은 추후 정리해보겠습니다.
▶튜플 자료형이란?
파이썬의 튜플은 여러 값을 순서대로 담을 수 있는 변경 불가능한(immutable)자료형 입니다. 리스트와 비슷하지만, 한 번 생성되면 요소를 추가, 삭제, 수정할 수 없다는 점에서 차이점을 가지고 잇습니다. 튜플은 주로 소괄호( )를 사용해 생성하며, 콤마(,)로 요소를 구분합니다.
리스트와의 차이
리스트는 [] 대괄호를 사용, 튜플은 ()소괄호를 사용하여 요소를 둘러싼다.
리스트는 변경가능하지만, 튜플은 불변성을 가지고 있다.
a = (1) # 튜플이 아님
b = (1,)# 튜플
c = 1, #튜플
위 예제를 보시면 a=(1)을 저장하였을 경우, 정수형으로 인식하게 됩니다. ( )소괄호안에 들어가있다고 무조건, 튜플이 아니며 소괄호( )는 그저 튜플을 시각적으로 표현하는데 도움을 주는 역할을 합니다. 튜플의 본질은 ,(콤마)이며 값이 하나만 있어도 ,(콤마)를 붙이면 튜플로 인식됩니다.
▶ 튜플의 특징
불변성(Immutability): 튜플의 가장 중요한 특징은 불변성입니다. 이 때문에 딕셔너리의 키로 사용될 수 있고, 데이터의 무결성을 보장하는 데 유용합니다.
순서(Ordered): 리스트처럼 각 요소는 순서를 가지며, 인덱스를 이용해 특정 요소에 접근할 수 있습니다. 인덱스는 0부터 시작합니다.
다양한 자료형 저장: 숫자, 문자열, 리스트 등 다양한 자료형을 하나의 튜플에 담을 수 있습니다.
딕셔너리는 키(key)와 값(value)을 한 쌍으로 저장하는, 순서가 없는(unordered) 자료형입니다.
여기서 말하는 키는 값을 찾기 위한 고유한 식별자 '이름표' 역할을 합니다.
우선, 다음에 정리할 내용이여서 짧은 설명만 하겠습니다.
▶튜플의 요솟값 변경 및 삭제 시도 시 발생하는 일
del 함수를 활용하여 삭제를 시도 해보려 하겠습니다.
삭제를 시도 하면, del tu1[1]이라는 구문에 오류가 있다는 메시지와함께 튜플객체는 항목 삭제를 지원하지 않는다는 메시지가 뜨는 걸 볼 수 있습니다.
이번엔 0번인덱스의 값을 변경하려고 시도 해보겠습니다.
수정을 시도 하면 마찬가지로 구문에 오류가 있다는 메시지와 함께 튜플객체는 수정을 지원하지 않는다는 메시지가 뜨는 걸 볼 수 있습니다.
그렇다고, 값을 변경 못하는건 아닙니다. 직접적인 변경이 불가능하면 변경 가능한 객체를 가지고 오면 됩니다.
예제를 보면서 배워 보겠습니다.
튜플의 불변성때문에 변경이 불가능하다면, 리스트로 변환 후 값을 변환 후 다시 튜플로 변환해주면 됩니다.
예제에서 보듯이 list로 변경한 후 해당 인덱스에 저장된 값을 변경하고 기존 저장된 튜플이 아닌 새로운 튜플로 변환하여 생성하시면 튜플의 값이 변경 가능합니다.
마찬가지로 슬라이싱 및 +연산자를 사용하여 병합까지 실습 해보겠습니다.
슬라이싱은 원하는 요소를 제외하고 새로운 튜플을 생성하는 방법이라고 보시면됩니다.
튜플 병합은 +연산자를 이용 여러 튜플을 합쳐 새로운 튜플을 만든다고 보시면 되겠습니다.
위예제를 보시고 실습 해보시면 되겠습니다.
튜플의 불변성 덕분에 데이터의 무결성을 보장할 수 있지만, 만약 요소의 변경이나 삭제가 자주 필요한 경우라면 리스트(List)를 사용하는 것이 더 적합합니다.
▶튜플 다루기
튜플은 변경 불가능한(immutable) 자료형이지만, 다양한 연산과 메서드를 통해 데이터를 효율적으로 처리할 수 있습니다.
①인덱싱(indexing) 과 슬라이싱(Slicing)
인덱싱은 튜플의 특정 위치에 있는 요소에 접근하는 방법이며 앞서 배워왔던 인덱싱의 요소와 차이가 없습니다. 0부터 시작하며 음수는 뒤에서 부터 접근합니다.
슬라이싱은 튜플의 일부를 잘라내어 새로운 튜플을 만드는 방법입니다. 마찬가지로 앞서 배운 요소와 동일하며 원본 튜플은 변경 되지 않습니다. [시작:끝:간격(선택)]
예제를 통해 실습해보겠습니다.
②더하기(+)와 곱하기(*)
더하기는 두 개 이상의 튜플을 합쳐 하나의 새로운 튜플을 만들며, 곱하기는 지정된 횟수만큼 반복하여 새로운 튜플을 만듭니다.
예제를 통해 실습해보겠습니다.
③튜플 길이 구하기(len()) 및 특정요소 확인 (in 키워드)
튜플에 포함된 요소의 개수를 반환 합니다. 파이썬의 기본 내장함수인 len()을 사용합니다.
튜플 내에 특정 값이 존재하는지 여부를 불리언 값(True 또는 False)으로 반환합니다.
예제를 통해 실습해보겠습니다.
(4,5) 는 튜플 안에 포함된 또 하나의 튜플이며, 튜플도 리스트처럼 중첩 구조를 가질 수 있습니다.
④특정 요소가 몇개 있는지 확인 하기 (.count()) 및 특정 요소 인덱스 찾기 (.index())
count() 는 튜플에서 특정 요소가 몇 번 나타나는지 횟수를 세어줍니다.
index() 는 특정 요소가 처음으로 나타나는 인덱스를 반환합니다. 찾는 요소가 없으면 ValueError가 발생합니다.
예제를 통해 실습해보겠습니다.
⑤튜플 언패킹(Unpacking)
튜플 언패킹이란 튜플의 요소들을 여러 변수에 한 번에 할당하는 기능입니다. 변수의 개수와 튜플의 요소 개수가 일치 해야합니다.
즉, 튜플이나 리스트에 담긴 여러 값을 → 변수 여러 개에 나누어 담는 것이라고 생각하시면됩니다.
함수에서 여러 값을 반환할 때, 리스트, 튜플, 딕셔너리를 깔끔하게 쪼갤 때 등 여러 상황에서 사용됩니다.
#일일이 하나씩 추출
t = (1,2)
a = t[0]
b = t[1]
#언패킹으로 한번에 추출
t = 1,2
a, b = t
위 예제와 아래 예제를 직접 보시면서 실습해보겠습니다.
언패킹에 대해 쉽게 설명하면 10과 20의 값을 각각 다른 상자에 나눠 담는것이라고 생각하시면 쉽습니다.
이로써, 튜플 자료형에 대해 마치겠습니다.
고생하셨습니다~😌
📘 참고:
《Do it! 점프 투 파이썬 (전면 개정 2판)》, 박응용 저, 이지스퍼블리싱, 2023
※ 본 글은 위 교재의 내용을 학습 및 정리 목적으로 요약/재구성한 글입니다.
'Python(파이썬)_점프 투 파이썬 > 파이썬 기초 문법' 카테고리의 다른 글
집합 자료형 (1) | 2025.08.10 |
---|---|
딕셔너리 자료형 (3) | 2025.08.09 |
리스트 자료형(List Datatype) (2) | 2025.08.06 |
파이썬 문자열 자료형(문자열 활용) (6) | 2025.08.06 |
파이썬 문자열 자료형(따옴표 및 이스케이프 활용) (2) | 2025.07.27 |