[Python 입문 강좌 - 9] 파이썬 튜플(Tuple) 정리 및 사용법

 

더보기

 

튜플에 대해 자세히 알아보고 튜플을 사용하는 방법에 대해 보도록 하겠습니다. 튜플은 자료형의 하나로 여러 개의 값을 담을 수 있는 순차적인 자료 구조입니다. 자료형(Data Type)이 무엇인지는 [Python 입문 강좌 -5]에서 알아봤습니다. 자료형에 대해 궁금하시면 링크를 통해 확인해주세요.

 


1. 튜플 (Tuple) 소개

1.1 튜플의 정의와 구조

 

튜플(tuple)은 Python에서 값을 저장하는 자료형 중 하나입니다. 튜플은 여러 개의 값을 가질 수 있는 순차적인 자료 구조입니다. 튜플은 리스트와 거의 동일합니다. 다만 값을 한 번 설정하면 변경할 수 없습니다.  이는 튜플이 상수(constant)와 같은 성질을 가지고 있다는 것을 뜻합니다. 

상수란 값을 한 번 정하면 변경할 수 없는 값을 말합니다.

 

튜플의 구조는 다음과 같습니다.

  • 여러 개의 요소(element)를 가지고 있습니다.
  • 각 요소는 순서가 있으며, 인덱스(Index)를 가집니다.
  • 튜플의 첫 번째 요소의 인덱스는 0, 두 번째 요소의 인덱스는 1,  ... 이러한 순서로 부여됩니다.

 

fruits 튜플에 apple, banana, cherry 요소가 있다. 그리고 각 요소는 인덱스를 가지고 있다.

 


2. 튜플 생성

2.1 튜플 생성 방법

 

튜플은 소괄호 ()를 이용하여 생성할 수 있습니다. 각 요소는 쉼표(,)로 구분합니다. 예를 들어, 정수의 리스트는 다음과 같이 생성할 수 있습니다.

 

>>> numbers = (1, 2, 3)

 

튜플에는 다양한 자료형을 포함할 수 있습니다. 예를 들어, 문자열, 정수, 실수 등을 포함한 튜플을 생성할 수 있습니다.

 

>>> mixed_list = (1, "hello", 3.14, True)
>>> print(mixed_list)

 

튜플은 tuple() 함수를 이용하여 생성할 수 도 있습니다. 

 

str1 = "apple"
tuple2 = tuple(str1)

 

튜플은 여러 개의 값을 변수에 할당하여 생성할 수도 있습니다. (이는 튜플 패킹 때문에 가능합니다.)

튜플 패킹(tuple packing)이란, 여러 개의 값을 하나의 튜플로 묶는 것을 말합니다. 

 

tuple5 = 1, 2, 3
tuple6 = "apple", "banana", "cherry"

 


2.2 리스트를 이용한 튜플 생성 방법

 

튜플은 만들어 놓은 리스트를 이용해 튜플을 생성할 수 있습니다. 첫 번째 방법은 tuple()함수를 이용해 만드는 방법입니다. 그리고 두 번째 방법은 소괄호 ()안에 리스트 값을 넣는 방법입니다.

 

 

>>> list = [1, 2, 3, 4, 5]
>>> t = tuple(list)
>>> print(t)
(1, 2, 3, 4, 5)

>>> list = [1, 2, 3, 4, 5]
>>> t = (list)
>>> print(t)
(1, 2, 3, 4, 5)

 



3. 튜플의 인덱싱

3.1 튜플의 인덱싱

 

튜플의 인덱싱은 리스트와 마찬가지로 가능합니다. 튜플의 인덱싱은 튜플의 요소에 접근하는 것입니다. 튜플의 요소에 접근하려면, 튜플명[인덱스] 형식으로 접근할 수 있습니다. 인덱스는 0부터 시작합니다.

 

# 튜플의 인덱싱
tuple1 = (1, 2, 3)
print(tuple1[0]) # 1
print(tuple1[1]) # 2
print(tuple1[2]) # 3

 


3.2. 튜플의 슬라이싱

 

튜플의 슬라이싱은 리스트와 마찬가지로 가능합니다. 튜플의 슬라이싱은 튜플의 일부 요소를 접근하는 것입니다. 튜플의 슬라이싱은 튜플명[start:end:step] 형식으로 수행할 수 있습니다. start는 시작 인덱스, end는 끝 인덱스, step은 슬라이싱 간격입니다. 기본으로 1로 설정되며 생략 가능합니다.

 

# 튜플의 슬라이싱
tuple1 = (1, 2, 3, 4, 5)
print(tuple1[1:3]) # (2, 3)
print(tuple1[:3]) # (1, 2, 3)
print(tuple1[1:]) # (2, 3, 4, 5)
print(tuple1[::-1]) # (5, 4, 3, 2, 1)

 


4. 튜플의 연산

4.1 튜플의 더하기

 

튜플의 더하기는 두 개의 튜플을 연결하여 새로운 튜플을 생성하는 것을 의미합니다. 아래의 예제에서 t1과 t2를 더하여 t3가 생성되었습니다. t3의 값은 t1과 t2를 연결한 결과인 (1, 2, 3, 4, 5, 6)입니다.

 

>>> t1 = (1, 2, 3)
>>> t2 = (4, 5, 6)
>>> t3 = t1 + t2
>>> print(t3)
(1, 2, 3, 4, 5, 6)

 


4.2 튜플의 곱하기

 

튜플의 곱하기는 기존의 튜플을 반복하여 새로운 튜플을 생성하는 것을 의미합니다. 다음의 예제를 통해 더 자세히 알아보겠습니다. 예제에서 t가 2번 반복되어 t2가 생성되었습니다. t2의 값은 t값이 2번 반복된 결과인 (1, 2, 3, 1, 2, 3)입니다.

 

>>> t = (1, 2, 3)
>>> t2 = t * 2
>>> print(t2)
(1, 2, 3, 1, 2, 3)

 


4.3 튜플의 수정과 삭제

 

튜플이 리스트와 다른 점은 요소의 내용을 변경하지 못한다는 것입니다. 그렇기 때문에 수정과 삭제를 할 수 없습니다. 만약 수정과 삭제를 시도하면 오류가 발생됩니다.

 


5. 튜플 관련 함수, 메소드

5.1 len() 함수

 

튜플의 길이는 튜플에 포함된 요소의 개수를 나타냅니다. 튜플의 길이는 파이썬 내장 함수 len()을 이용하여 구할 수 있습니다. 예를 들어, 튜플 my_tuple이 (1, 2, 3, 4, 5)와 같을 때, lne(my_tuple)를 실행하면 요소의 개수가 5가 반환됩니다.

 

>>> my_tuple = (1, 2, 3, 4, 5)
>>> print(len(my_tuple))
5

 


5.2 max() 함수

 

max() 내장 함수는 튜플에서 가장 큰 값을 찾아주는 함수입니다. 만약 튜플의 요소가 각각 다른 타입의 자료형일 경우에는 오류가 발생할 수 있습니다. 문자열을 사용하는 경우는 알파벳 순서, 한글 순서에 따라서 최대값을 결정합니다. 예를 들어 다음과 같은 튜플이 있다고 가정해봅시다. 이 때, max() 함수를 사용하면 다음과 같은 가장 큰 값인 5를 얻을 수 있습니다.

 

numbers = (1, 2, 3, 4, 5)
>>> max(numbers)
5

 


5.3 min() 함수

 

min()함수는 튜플에서 가장 작은 값을 찾아 반환하는 함수입니다. 예를 들어 다음과 같은 튜플이 있다고 가정해봅시다. 이 때 min(numbers)를 호출하면 가장 작은 값인 1이 반환됩니다. max()함수와 마찬가지로 리스트의 요소가 각각 다른 타입의 자료형일 경우에는 오류가 발생할 수 있습니다.

 

numbers = (3, 1, 4, 1, 5, 9, 2, 6, 5, 3)
>>> min(numbers)
1

 


5.4 list() 함수와 tuple()함수

 

list() 함수와 tuple()함수는 튜플과 리스트 사이를 변환하는 함수입니다. list() 함수는 튜플을 리스트로 변환할 수 있고 tuple()함수는 리스트를 튜플로 변환할 수 있습니다.

 

>>> t = (1, 2, 3)
>>> list(t)
[1, 2, 3]

>>> l = [1, 2, 3]
>>> tuple(l)
(1, 2, 3)

 


5.5 튜플의 메서드

 

튜플은 변경이 불가능한 자료형이기 때문에 추가, 삭제, 수정과 같은 메서드를 가지지 않습니다.