본문 바로가기
필기 노트/Python 기초

[Python 기초] 기본 자료형 : 튜플 (tuple)

by misconstructed 2020. 6. 25.
728x90

이번에는 파이썬의 기본 자료형 중 튜플(tuple)에 대해서 알아보겠습니다.

튜플 (tuple)

튜플은 다양한 값을 함께 저장하는 것은 리스트(리스트에 대한 게시물을 조회하시려면 여길 누르세요)와 유사합니다. 

하지만, 리스트와는 다른 2가지의 특징이 있습니다.

  1. 중괄호를 쓰는 리스트와는 달리, 튜플은 소괄호 "()"를 사용합니다.
  2. 값의 생성, 삭제, 수정이 불가능합니다. 그러므로, 값이 변하지 않기를 바라는 경우 사용합니다.

튜플의 생성은 다음과 같이 합니다.

>>> t = ()
>>> t1 = (1, )
>>> t2 = (1, 2, 3)

여기서 주의하셔야 할 점은, 원소가 1개인 튜플을 생성하는 경우 콤마(,)를 꼭 함께 사용해야 한다는 것입니다. 

콤마를 사용하지 않는 경우, 튜플이 아닌, 원소 그 자체가 변수에 저장됩니다.

예를들어, a = (1) 이라고 선언하는 경우, a에는 1이라는 정수 값이 저장됩니다.

하지만, b = (1, )이라고 선언하면, b는 1 이라는 원소를 보유한 튜플로 선언됩니다.

>>> t = (1, 2, 3)
>>> del t[0]
# 오류
>>> t[0] = 999
# 오류

앞서 말한 것과 같이, 튜플의 값을 삭제하거나 수정하는 것은 불가능합니다.

튜플을 수정하는 경우 오류가 발생합니다.

튜플 연산

리스트와 동일하게, 튜플에도 다양한 연산이 가능합니다.

1. 튜플 인덱싱

리스트 인덱싱과 동일한 방법으로 수행됩니다.

리스트의 각 요소를 인덱스를 이용해서 접근할 수 있습니다. 이때, 각 인덱스는 0에서부터 시작합니다.

리스트의 뒤에서부터 접근하기 위해서는 - 를 이용해서 접근할 수 있습니다. -1의 경우 가장 마지막 요소를 접근하게 됩니다.

인덱스를 -0으로 접근하는 경우, 0번째 인덱스와 동일한 결과를 반환합니다.

>>> l = (1, 2, 3, 'a', 'b', 'c')
>>> l[0]
# 1
>>> l[-1]
# 'c'
>>> l[-0]
# 1

2. 튜플 슬라이싱

리스트 슬라이싱과 동일한 방법으로 사용할 수 있습니다.

튜플명[시작 인덱스 : 끝 인덱스] 와 같이 표현합니다. 전체 튜플의 일부를 잘라낸다고 생각하시면 됩니다.

리스트 동일하게 주의하셔야 할 점은 끝 인덱스의 값을 결과에 포함되지 않는다는 점입니다.

결과로 동일하게 튜플을 반환합니다.

>>> l = (1, 2, 3, 'a', 'b', 'c')
>>> l1 = l[1:3]
# (2, 3)
>>> l2 = l[:3]
# (1, 2, 3)
>>> l3 = l[3:]
# ('a', 'b', 'c')

3. 기타 리스트 연산

  1. + : 튜플 더하기
  2. * : 튜플 곱하기
  3. len() : 튜플 길이 구하기
>>> a = (1, 2, 3)
>>> b = (0, 9, 8)
>>> a + b
# (1, 2, 3, 0, 9, 8)
>>> a * 2
# (1, 2, 3, 1, 2, 3)
>>> len(a)
# 3

 


해당 게시물은 <점프 투 파이썬>을 읽고 제 나름대로 정리한 내용입니다!

더 구체적인 정보나, 추가적인 내용을 확인하고 싶으시면 <점프 투 파이썬>을 참고해주시기 바랍니다.

잘못된 부분 지적이나 피드백은 언제든지 환영입니다.

감사합니다 :)

728x90

댓글