와, 정말 오랜만에 다시 공부하는 것 같네요.
계속 어디 다녀오느라 미뤄뒀던 공부를 다시 시작합니다. 오늘은 파이썬의 자료형 중 하나인 '튜플'에 대해서 공부해 볼까 합니다.
튜플(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) 자료형에 대해 공부해 보겠습니다!
'파이썬 독학' 카테고리의 다른 글
[파이썬 독학 5일차] 파이썬 문자열 완전 정복! 인덱싱, 슬라이싱,포매팅 완벽 가이드 (0) | 2025.01.24 |
---|---|
[파이썬 독학 4일차] 프로그래밍 기초 _ 자료형 (숫자형, 문자형_1) (0) | 2025.01.22 |
[파이썬 독학 3일차] 파이썬 기초 문법 따라해보기 ( if,for,while) (0) | 2025.01.21 |
[파이썬 독학 2일차] 독학을 위한 교재 선정 및 파이썬이란 무엇인가? (0) | 2025.01.20 |
[파이썬 독학 1일] 파이썬 설치 방법 (0) | 2025.01.19 |