Python/파이썬 기초

파이썬 기초 자료형 2 : 튜플(tuple)

jimmy_AI 2021. 12. 1. 11:59
반응형

한 번 저장된 값을 변경하지 않고 싶을 때, 다른 자료형보다 안정적으로 사용 가능한 튜플 자료형에 대해서 살펴보도록 하겠습니다.

 

리스트 자료형과 순서대로 데이터를 저장한다는 원리는 거의 비슷하나, 저장된 자료의 값을 변경, 추가, 삭제 등이 불가능한 자료형이 튜플 자료형이라고 할 수 있습니다.

 

파이썬 튜플 자료형 예제

튜플 선언하기

먼저 튜플을 선언하는 예제를 살펴보도록 하겠습니다. 튜플 역시 리스트처럼 저장하는 데이터들의 자료 타입이 모두 일치할 필요는 없으며, 다양한 형태의 자료들을 저장 가능합니다. 또한, 튜플은 기본적으로는 소괄호 ( ) 표시로 감싸서 선언을 하게되는데, 이 소괄호 표시를 생략하고 선언도 가능합니다.

tuple_a = (1) # (1, ) 처럼 선언도 가능
tuple_b = (1, 'a')
tuple_c = (1, (1, 2), [3, 4, 5])
tuple_d = 1, 'a' # tuple_b와 같은 결과

튜플 인덱싱, 슬라이싱

튜플 역시 데이터 저장 순서를 이용한 자료형이기에 리스트와 마찬가지로 인덱싱과 슬라이싱이 가능합니다. 인덱스는 0번부터 시작한다는 점에 주의해주세요.

# 5개의 데이터로 구성된 튜플 예시
tuple_a = (1, (1, 2), [3, 4, 5], 'a', 'bcd')

# 인덱싱 예시
tuple_a[0] # 1
tuple_a[3] # 'a'
tuple_a[2][1] # [3, 4, 5] -> 4

# 슬라이싱 예시
tuple_a[1:3] # 1 ~ 2번 위치 : ((1, 2), [3, 4, 5]) 
tuple_a[3:] # 3번부터 끝 위치 : ('a', 'bcd')
tuple_a[1::2] # 1번부터 2개씩 건너뛰며 인덱싱 : ((1, 2), 'a')
tuple_a[::-1] # 역순서 : ('bcd', 'a', [3, 4, 5], (1, 2), 1)

튜플 덧셈, 곱셈

튜플로 리스트와 마찬가지로 선언 단계에서는 덧셈과 곱셈의 원리를 적용할 수 있습니다. 덧셈은 두 튜플의 원소들을 이어붙이는 원리이며, 곱셈은 같은 원소를 여러번 반복한다는 의미입니다.

tuple_a = (1, 2)
tuple_b = (3, ) * 4 # (3, 3, 3, 3)

tuple_a + tuple_b # (1, 2, 3, 3, 3, 3)
반응형

튜플에 데이터 추가, 변경, 삭제 시도, 리스트로 변환

튜플에 데이터를 추가, 변경, 삭제 시도해보고, 리스트로 변환하는 방법에대해서 살펴보겠습니다. 튜플이 데이터 변경을 허용하지 않는다는 점에 유의하면서 아래 코드를 실행해보세요.

tuple_a = (1, 2)

# 튜플 데이터 변경 시도
tuple_a[0] = 3 # TypeError: 'tuple' object does not support item assignment
tuple_a.append(3) # AttributeError: 'tuple' object has no attribute 'append'
tuple_a.remove(1) # AttributeError: 'tuple' object has no attribute 'remove'

# 튜플을 리스트로 변환
list_a = list(tuple_a) # [1, 2]

# 리스트를 튜플로 변환
tuple_b = tuple(list_a) # (1, 2)

함수 반환 값 튜플 저장 예시

참고로, 파이썬에서 함수 사용 시 2개 이상의 원소를 동시에 반환할 때 1개의 변수에 값을 할당하게 되면 값을 튜플에 담아서 반환해줍니다. 아래 코드로 이 점을 이해해보며, 튜플에 관한 포스팅을 마무리해보도록 하겠습니다.

def foo():
    return 1, 2

a = foo() # a = (1, 2)
a, b = foo() # a = 1, b = 2