Data/Python

[Python] 파이썬 튜플 자료형 - 인덱싱, 슬라이싱

재은초 2023. 6. 17. 20:24
반응형

튜플(Tuple)이란?

  • 리스트와 동일한 복합 데이터의 집합이지만 리스트는 []으로 둘러싸지만 튜플은 ()로 둘러싼다.

튜플 만드는 법

>>> t1 = tuple()                  # 빈 튜플 생성
>>> t1 = ()

>>> t2 = (1,)                     # 1개의 요소만 있을 때도 콤마(,)를 반드시 붙임
>>> t3 = (1, 2, 3)
>>> t4 = 1, 2, 3                  # 괄호()를 생략해도 무방
>>> t5 = ('a', 'b', ('ab', 'cd'))

튜플 요소 추가하기

  • 튜플에 새 값을 추가할 수 있는데, 이는 원본이 아니라 원본에 새로운 튜플이 합쳐진 새로운 튜플로 반환하는 것이다.
>>> t1 = (1, 2, 3)
>>> t2 = t1 + (4,)
>>> t2
(1, 2, 3, 4)

튜플 요솟값 변경 및 삭제 불가

  • 리스트는 그 값의 생성, 삭제, 수정이 가능하지만 튜플은 읽기전용이라 튜플의 요솟값은 한 번 정하면 지우거나 변경할 수 없다.
# 튜플 요솟값 변경 불가
>>> t1 = (1, 2, 'a', 'b')
>>> t1[0] = 'c'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

# 튜플 요솟값 삭제 불가
>>> t1 = (1, 2, 'a', 'b')             
>>> del t1[0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object doesn't support item deletion

 

튜플 기본 연산

  • 튜플 더하기(+): 파이썬에서 튜플끼리의 더하기 연산은 두 튜플을 원소로 가지는 것이 아니라, 두 튜플의 원소만을 순서대로 가지는 새로운 튜플을 생성하여 반환한다. 
>>> t1 = (1,"hello")
>>> t2 = (3,4.22)
>>> t3 = t1 + t2
>>> print(t3)
(1, 'hello', 3, 4.22)
  • 튜플 곱하기(*): 튜플과 정수의 곱하기 연산은 해당 튜플의 원소를 정수만큼 반복하여 연결한 새로운 튜플을 생성하여 반환한다.
>>> t1 = (1,"hello")
>>> t4 = t1 * 3
>>> print(t4)
(1, 'hello', 1, 'hello', 1, 'hello')
  • 튜플 길이 구하기
>>> t1 = (1, 2, 'a', 'b')
>>> len(t1)
4

 

튜플 요소에 접근하기

  • 인덱싱
>>> t1 = (1, 2, 'a', 'b')
>>> t1[0]
1
>>> t1[3]
'b'
  • 슬라이싱
>>> t1 = (1, 2, 'a', 'b')
>>> t1[1:]
(2, 'a', 'b')

 

 

Reference

반응형