본문 바로가기
Python/기초

파이썬 강사가 정리한 컬렉션 자료형: 튜플에 대하여

by 모두의 케빈 2023. 8. 20.

 

 

튜플이란?


튜플은 상수 리스트이다.

 

튜플은 많은 기능에서 리스트와 비슷하지만, 딱 한 가지 중요한 특징이 있습니다. 일단 튜플을 선언한 후에는 튜플의 값을 절대로 수정할 수 없습니다. 그래서 튜플은 상수 리스트라고 불립니다. (반면 리스트는 값을 수정할 수 있습니다.)

 

 

튜플은 어디에 활용하는가?

 

'값을 수정할 수 없는데 왜 사용하지?'라는 생각이 들 수 있습니다. 그러나 튜플은 생각보다 꽤 많이 사용됩니다. 우선 고유 값을 표현하는 데 사용할 수 있습니다. 예를 들면 사람의 주민등록번호 같은 경우입니다.

 

그리고 어떠한 연산이나 함수의 결과가 종종 튜플의 형태로 반환되기도 합니다. 최종 결과가 전달 과정에서 영향을 받으면 안 되니까요. (반환된 결과를 각각의 변수에 Unpacking)

 

 

 

 

튜플 실습


튜플 선언하기

 

튜플은 소괄호로 선언합니다.

# tuple

tuple_a = (1,2,3)
print(type(tuple_a))
 >>>>> 실행 결과: <class 'tuple'>

 

 

공백 튜플 선언하기

 

코딩 테스트를 준비하시는 경우, 공백의 튜플을 선언해야 하는 경우가 꽤 있습니다. 

# 공백 tuple

tuple_a = ()
tuple_b = tuple()

 

 

튜플은 값을 바꿀 수 없다.

 

튜플의 값을 수정하려고 하면 아래와 같은 "TypeError"가 발생합니다.

# tuple

tuple_a = (1,2,3)
tuple_a[0] = 9999

--------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-60-f952456eaa0a> in <module>

      2 

      3 tuple_a = (1,2,3)

----> 4 tuple_a[0] = 9999

 

TypeError: 'tuple' object does not support item assignment  → 튜플은 수정할 수 없다.

 

 

 

꼭 튜플의 값을 바꿔야 한다면?

 

튜플은 애초에 값을 수정할 수 없도록 만든 자료형입니다. 따라서 튜플 자료형은 값을 수정하거나 추가하거나 제거할 수 없습니다.

 

그럼에도 굳이 값을 수정해야 하는 경우에는 보통 다른 컬렉션 자료형으로 형 변환하여 값을 수정하고 다시 튜플로 변경하는 방식을 사용합니다.

tuple_a = (1,2,3,4)
temp_list = list(tuple_a) # list로 형 변환
temp_list[0] = 9999
tuple_a = tuple(temp_list) # tuple로 형 변환

print(tuple_a)
 >>>>> 실행 결과: (9999, 2, 3, 4)

 

 

튜플의 인덱싱과 슬라이싱

 

튜플의 인덱싱과 슬라이싱은 리스트와 동일합니다.

# 인덱싱

tuple_a = (1,2,3,4,5,6,7,8,9,10)

print(tuple_a[2], tuple_a[7], tuple_a[-4])
 >>>> 실행 결과: 3, 8, 7

 

# 슬라이싱

tuple_a = (1,2,3,4,5,6,7,8,9,10)

print(tuple_a[2:5], tuple_a[-1:-5:-1], tuple_a[1:-3:2])
 >>>>> 실행 결과: (3, 4, 5) (10, 9, 8, 7) (2, 4, 6)

 

 

 

 

튜플의 연산

 

튜플의 값을 바꾸는 것은 안되지만, 서로 다른 튜플을 연산하여 새로운 튜플을 만드는 것은 가능합니다. 리스트나 문자열처럼 튜플도 덧셈과 곱셈 연산을 지원합니다.

 

튜플의 덧셈 연산: 튜플 합치기

# 덧셈 연산

tuple_a = (1,2,3,4,5)
tuple_b = (6,7,8,9,10)

tuple_a + tuple_b
 >>>>> 실행 결과: (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

 

튜플의 곱셈 연산: 정수배 반복

# 곱셈 연산

tuple_a = (1,2,3,4,5)
tuple_a * 3
 >>>>> 실행 결과: (1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5)

 

 

 

 

리스트에 대해서도 알아보세요.

 

파이썬 리스트 집중 해부 1편: 정의부터 인덱싱과 슬라이싱까지

 

파이썬 리스트 집중 해부 1편: 정의부터 인덱싱과 슬라이싱까지

목차 파이썬 리스트 자료형의 정의와 선언 > 파이썬 리스트란 > 리스트 선언하기 > 리스트 자료형 확인하기: type 함수 > 코딩 테스트 꿀팁: 공백 리스트 선언 > n차원 배열: 리스트 안에 리스트 리

kevinitcoding.tistory.com

 

 

파이썬 리스트 집중 해부 2편: 리스트 기초 연산과 값 수정, 추가, 삭제

 

 

 

 

파이썬 리스트 집중 해부 3편: 유용한 리스트 관련 메서드 정리

 

 

댓글