파이썬 튜플 (Tuples)

파이썬 튜플(Tuples) – 파이썬 자료형 5편

파이썬 튜플의 특성

튜플은 시퀀스 자료형의 일종으로 리스트와 매우 흡사합니다. 그도 그럴것이 리스트 역시 시퀀스 자료형의 일종이니까요. 하지만 튜플은 튜플, 리스트는 리스트 – 두 자료형 간의 다른 점이 몇 가지 있습니다.

  1. 튜플은 리스트와 달리 아이템을 삭제, 수정 등 변경 할 수 없습니다.
  2. 튜플은 아이템을 ( ,) 을 사용해서 만듭니다. 리스트는 [, ] 를 사용합니다.

첫 번째 특징때문에 튜플은 리스트보다는 값을 변경하지 말아야 할 곳에 제한적으로 사용됩니다.

파이썬 튜플 생성

튜플은 아래와 같이 선언합니다.

>>> T = () # 빈 튜플 생성
>>> T = ('a', 'b', 'c') #일반적인 생성 방법
>>> T = a,b,c #괄호 생략 가능합니다.
>>> T = ('a', ) # 하나의 아이템만 넣을 때
>>> T
('a', )
>>> T = ('a') #이렇게 넣으면
>>> T #T는 문자열이 됩니다.
'a'

튜플에 하나의 아이템만 넣을 경우 반드시 첫 번째 아이템 뒤에 콤마(,)를 붙여야 파이썬에서 이를 튜플로 인식합니다.

파이썬 튜플의 연산

리스트편에서 설명했던 슬라이싱, 인덱싱 등 대부분의 연산을 사용할 수 있고 사용 방법도 같습니다. 다만 튜플 특성 상 아이템을 수정, 삭제하는 연산은 사용할 수 없습니다.

>>> T = (1,2,3)
>>> del T[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object doesn't support item deletion

튜플의 아이템을 삭제하려 하면 바로 TypeError 예외가 발생합니다. 예외관련은 예외처리 항목을 참고하시기 바랍니다.

파이썬 튜플을 이용한 다중 값 리턴 (반환)

개인적인 경험 상, 실제 여러 파이썬 소스를 접해보면 튜플이 가장 많이 사용될 때는 바로 함수 반환(리턴) 시 입니다.

함수 편에서 설명하겠지만, 파이썬에서 하나의 함수는 하나의 값밖에 반환할 수 없는데 코드 예제를 읽다보면 여러 개의 리턴 값을 받는 경우가 종종 있습니다.

import os
import sys

for root, subFolders, files in os.walk('some_dir'):

위 코드는 파이썬의 특정 폴더 및 하위 폴더를 순환하는 코드인데요, os.walk() 의 반환 값을 ‘root, subFolders, files’ 로 받고 있습니다.

아니 함수의 반환 값은 단 하나여야 하는데 어떻게 이런 일이 가능할까요?

가능합니다. os.walk()는 튜플 값을 반환하고 있기 때문이죠.

3가지 값을 튜플로 묶어서 반환하고 이를 각각 변수 root, subFolders, files 에 넣어서 사용할 수 있는 것입니다.

파이썬 튜플과 리스트 상호 변환

파이썬 튜플과 리스트는 쉽게 리스트로 변환이 가능합니다.

>>> T = (1,2,3)
>>> L = list(T)
>>> L
[1, 2, 3]
>>> L = [4, 5, 6]
>>> T = tuple(L)
>>> T
(4, 5, 6)

참고자료

  1. 파이썬 공식 문서

Leave a Reply

Leave a Reply

Your email address will not be published. Required fields are marked *