[Python] 튜플(Tuple)
튜플(Tuple)
- 리스트보다 메모리 사용량이 적고, 접근 속도가 더 빠름
- 따라서 단순히 읽기만 할 때는 튜플이 더 효율적임
# 숫자로만 이루어진 튜플
numbers = (1, 2, 3, 4, 5)
# 문자열로만 이루어진 튜플
fruits = ('사과', '바나나', '오렌지')
# 다양한 자료형이 섞인 튜플
midxed = (1, '파이썬', True, 3.14)
# 빈 튜플
empty = ()
튜플의 특징
🔒 불변성 (Immutability)
- 리스트와 다르게 한 번 생성되면 그 내용을 수정할 수 없음
- 데이터의 안전성을 보장하고, 실수로 데이터가 변경되는 것을 방지
- 튜플의 값을 변경하려고 하면 오류 발생
point = (3, 4)
point[0] = 5 # 오류
📋 순서가 있는 데이터
- 데이터가 저장된 순서를 유지
- 리스트처럼 인덱스를 사용하여 특정 위치의 데이터에 접근 가능
coordinates = (1, 1, 2, 3, 3) # 중복 값 허용
print(f"두 번째 값: {coordinates[1]}") # 두 번째 값: 1
print(f"마지막 값: {coordinates[-1]}") # 마지막 값: 3
🎨 다양한 데이터 타입 저장
- 튜플은 다양한 타입의 데이터를 함께 저장할 수 있음
- 튜플 안에 또 다른 튜플이나 리스트도 가능
student = ("김철수", 20, True, (90, 85, 95)) # 이름, 나이, 재학여부, 성적
print(f"학생 이름: {student[0]}") # 학생 이름: 김철수
print(f"첫 번째 성적: {student[3][0]}") # 첫 번째 성적: 90
📦 패킹과 언패킹
- 여러 값을 하나로 묶는 패킹(Packing)
- 패킹은 데이터를 튜플로 만드는 것
- 여러 변수로 나누는 언패킹(Unpacking)
- 언패킹은 튜플의 값을 각각의 변수에 나눠 담는 것
# 패킹
point = 3, 4 # 괄호를 생략해도 튜플 생성 가능
# 언패킹
x, y = point
print(f"point: {point}") # point: (3, 4)
print(f"x좌표: {x}, y좌표: {y}") # x좌표: 3, y좌표: 4
튜플이 유용한 경우
🚸 데이터의 안정성이 필요할 때
- 튜플은 한 번 생성되면 값을 변경할 수 없기 때문에, 데이터가 실수로 변경되는 것을 방지할 수 있음
📦 함수에서 여러 값을 반환할 때
- 일반적으로 함수는 하나의 값만 반환하는 경우가 많지만, 튜플에 담아서 한 번에 반환이 가능
def get_user_info():
name = "철수"
age = 12
grade = 6
return name, age, grade # 튜플로 반환
user_info = get_user_info()
print(user_info) # ('철수', 12, 6)
튜플 활용하기
튜플 만들기
- 일반적으로 소괄호()를 사용하여 만들지만, 괄호를 생략해도 튜플로 생성됨
- 값이 하나인 튜플을 만들 때는 반드시 콤마를 붙여야함
# 잘못된 방법 a = (5) # 이건 그냥 정수 print(type(a)) # <class 'int'> # 올바른 방법 b = (5,) # 콤마를 붙여야 튜플 print(type(b)) # <class 'tuple'> # 괄호 생략도 가능 c = 5, # 이것도 튜플 print(type(c)) # <class 'tuple'> - 빈 튜플도 생성 가능
empty1 = () empty2 = tuple()
튜플의 값에 접근하기
- 인덱스
- 슬라이싱
인덱스와 슬라이싱에 관한 자세한 내용은 리스트(List) 게시글 참고
Leave a comment