[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