본문 바로가기
파이썬 독학

[파이썬 독학 6일차] 파이썬 듀플과 리스트 차이점 공부하기 듀플의 인덱싱, 슬라이싱 완벽 가이드

by 꺼짐켜짐 2025. 2. 16.
반응형

와, 정말 오랜만에 다시 공부하는 것 같네요.

계속 어디 다녀오느라 미뤄뒀던 공부를 다시 시작합니다. 오늘은 파이썬의 자료형 중 하나인 '튜플'에 대해서 공부해 볼까 합니다.

튜플(Tuple)이란?

튜플은 리스트와 굉장히 비슷한 구조를 가지고 있는 자료형입니다. 리스트는 대괄호 []를 사용하지만, 튜플은 소괄호 ()를 사용하여 정의합니다.

예를 들어 리스트는 다음과 같이 생성할 수 있습니다.

a = [1, 2, 3]

이렇게 하면 a[0] = 1, a[1] = 2, a[2] = 3이라는 값을 가지게 됩니다.

튜플도 마찬가지로 다음과 같이 생성할 수 있습니다.

a = (1, 2, 3)

이 경우에도 a[0] = 1, a[1] = 2, a[2] = 3이 됩니다.

겉으로 보면 리스트와 튜플은 거의 차이가 없어 보이는데요. 그렇다면 리스트와 튜플의 차이점은 무엇일까요?

리스트와 튜플의 차이점

가장 큰 차이점은 튜플은 요소의 값을 변경할 수 없다는 것입니다.

리스트는 요소의 값을 자유롭게 변경할 수 있습니다. 예를 들어,

a = [1, 2, 3]
a[2] = 'c'
print(a)  # [1, 2, 'c']

위 코드처럼 리스트의 요소를 변경할 수 있습니다.

파이썬 리스트 요소값 변경

하지만 튜플은 요소를 변경할 수 없습니다. 다음과 같이 하면 오류가 발생합니다.

a = (1, 2, 3)
a[2] = 'c'  # TypeError: 'tuple' object does not support item assignment

즉, 리스트는 변경 가능(mutable)하지만, 튜플은 변경 불가능(immutable)하다는 것이 가장 큰 차이점입니다.

파이썬 듀플 요소값 변경 불가

튜플의 활용

튜플은 요소를 변경할 수 없다는 특성 때문에, 값이 변하면 안 되는 데이터를 저장할 때 유용합니다. 예를 들어, 좌표 값 (x, y), RGB 색상 값 (r, g, b), 한 번 설정하면 변하면 안 되는 설정 값 등을 저장하는 데 적합합니다.

리스트와 사용법이 비슷하기 때문에, 리스트에서 배웠던 기능들을 튜플에서도 사용할 수 있습니다. 몇 가지 예제를 보면서 익혀볼까요?

1. 인덱싱(Indexing)

튜플에서 특정 위치의 요소를 가져오는 방법입니다.

a = ('in', 'dex', 3, 4)
print(a[2])  # 3
print(a[0])  # 'in'

또한, 문자열처럼 튜플의 요소를 이어 붙이는 것도 가능합니다.

print(a[0] + a[1])  # 'index'

파이썬 듀플 인덱스

2. 슬라이싱(Slicing)

튜플에서 특정 범위의 요소를 추출하는 방법입니다.

a = ('not', 'easy', 'python', '!!!')
print(a[1:])  # ('easy', 'python', '!!!')
print(a[1:3])  # ('easy', 'python')

여기서 중요한 점은 a[1:3]을 하면 a[1], a[2]까지만 출력되고, a[3]은 포함되지 않는다는 점입니다.

a[1:3] 이면 a[1],a[2],a[3] 을 표출하는 것이 아니라 a[1],a[2] 까지 표출이 되거든요

그러니까 a[x:y] 라고 한다면 실체 표출은 a[x] ~ a[y-1] 이라고 생각하셔야 합니다.

파이썬 듀플 슬라이싱

3. 더하기(+)와 곱하기(*)

튜플도 리스트처럼 + 연산으로 합칠 수 있고, * 연산으로 반복할 수 있습니다.

a = (1, 2, 3)
b = ('a', 'd', 'd')
c = ('m', 'u', 'l', 't')

b = a + b
print(b)  # (1, 2, 3, 'a', 'd', 'd')

c = c * 3
print(c)  # ('m', 'u', 'l', 't', 'm', 'u', 'l', 't', 'm', 'u', 'l', 't')

파이썬 듀플 더하기, 곱하기

4. 튜플의 길이 구하기

튜플의 길이를 구하는 방법은 len() 함수를 사용하면 됩니다.

a = (1, 2, 3, 4)
print(len(a))  # 4

튜플에 요소 추가하기

튜플은 변경할 수 없다고 했는데, 요소를 추가할 수는 없을까요? 직접 요소를 변경할 수는 없지만, 새로운 튜플을 생성하는 방식으로 추가할 수 있습니다.

예제: (1,2,3)이라는 튜플에 4를 추가하여 (1,2,3,4) 만들기

방법은 두 가지가 있습니다.

방법 1: 기존 변수 활용

이렇게 하는 게 변수를 늘리지도 않고 간단하게 할 수 있어서 좋은 것 같아요

a = (1, 2, 3)
a = a + (4,)
print(a)  # (1, 2, 3, 4)

방법 2: 새로운 변수 활용

t1 = (1, 2, 3)
t2 = (4,)
t1 = t1 + t2
print(t1)  # (1, 2, 3, 4)

파이썬 듀플 예제 문제 풀이

 

정리

오늘은 튜플에 대해 배워봤습니다. 가장 중요한 개념은 튜플은 리스트와 비슷하지만, 요소를 변경할 수 없다는 점입니다. 이 특성을 잘 활용하면, 변경되면 안 되는 데이터를 안전하게 관리할 수 있습니다.

내일은 딕셔너리(Dictionary) 자료형에 대해 공부해 보겠습니다!

파이썬 튜플 타이틀
파이썬 튜플 타이틀

 

 

 

반응형