[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-9. 튜플

2025. 3. 13. 12:25·Python

📌 Python 함수 심화 – Chapter 6-9. 튜플


✅ 1. 튜플이란?

  • **튜플(Tuple)**은 리스트와 비슷한 시퀀스 자료형.
  • 리스트와의 차이점: 요소의 수정, 추가, 삭제가 불가능하여 **불변성(Immutable)**을 가짐.
  • **소괄호 ()**를 이용하여 생성.
# 튜플 생성
oz_tuple = (1, 2, 3)
print(oz_tuple)
print(oz_tuple[0])
print(oz_tuple[1])
print(oz_tuple[2])
  • 출력 결과
(1, 2, 3)
1
2
3

✅ 2. 튜플 데이터 변경 불가

oz_tuple = (1, 2, 3)
oz_tuple[0] = 5  # 오류 발생
  • 출력 결과
TypeError: 'tuple' object does not support item assignment
  • 설명: 튜플은 불변 자료형이기 때문에, 요소를 수정할 수 없음.

✅ 3. 튜플 데이터 할당 (소괄호 생략 가능)

oz_tuple = 1, 2, 3, 4
print("oz_tuple:", oz_tuple)
print("oz_tuple type:", type(oz_tuple))

x, y, z = 1, 2, 3
print(x)
print(y)
print(z)
  • 출력 결과
oz_tuple: (1, 2, 3, 4)
oz_tuple type: <class 'tuple'>
1
2
3
  • 설명: 소괄호 없이 ,로 나열하면 자동으로 튜플로 인식.

✅ 4. 튜플 값 교환

x, y = 1, 2
print("x :", x)
print("y :", y)

# 값 교환
y, x = x, y
print("x :", x)
print("y :", y)
  • 출력 결과
x: 1
y: 2
x: 2
y: 1
  • 설명: 튜플을 사용하여 값을 간단히 교환 가능.

✅ 5. 튜플을 이용한 값 리턴

def oz_tuple():
    return (1, 2)

x, y = oz_tuple()
print("x:", x)
print("y:", y)
  • 출력 결과
x: 1
y: 2
  • 설명: 함수에서 여러 값을 튜플 형태로 반환 가능.

✅ 6. 튜플을 이용한 내부 함수

# enumerate()를 사용해 인덱스와 값 출력
for index, fruit in enumerate((1, 2, 3, 4)):
    print(index, fruit)
  • 출력 결과
0 1
1 2
2 3
3 4
# divmod()를 사용해 몫과 나머지 반환
a, b = 7, 3
x, y = divmod(a, b)
print("몫:", x)
print("나머지:", y)
  • 출력 결과
몫: 2
나머지: 1
  • 설명:
    • enumerate()는 인덱스와 값을 튜플 형태로 반환.
    • divmod()는 몫과 나머지를 튜플로 반환.

✅ 이해도 체크리스트

  1. 튜플의 특징은?
    • 불변성(Immutable): 생성된 후 요소를 변경할 수 없음.
    • 소괄호 사용: (1, 2, 3) 형식으로 생성.
    • 소괄호 생략 가능: 1, 2, 3처럼 쉼표로 구분하여 생성 가능.
    • 다양한 자료형 저장: oz_tuple = (1, "hello", 3.14)
    • 간단한 값 교환 가능: x, y = y, x
    • 여러 값 반환 가능: return (1, 2)
  2. 괄호 없이 여러 값을 튜플로 할당하려면?
    • 정답: x, y, z = 1, 2, 3
    • 파이썬에서는 소괄호 없이 ,로 구분해 값을 할당하면 자동으로 튜플로 인식함.

이 정리된 내용을 통해 튜플의 개념과 활용법을 확실히 익히고, 실무에서도 튜플을 유용하게 사용해 보세요! 🚀

 

📌 Python 튜플 심화 정리


✅ 1. 튜플의 특징

  • **튜플(Tuple)**은 파이썬의 시퀀스 자료형 중 하나로, 여러 값을 하나의 변수에 저장할 수 있습니다.
  • 리스트(list)와 비슷하지만, 가장 큰 차이점은 튜플은 한 번 생성되면 값을 변경할 수 없는 '불변(immutable)' 자료형이라는 점입니다.
  • **소괄호 ()**를 사용해 정의하며, **콤마 ,**로 구분합니다.

✅ 2. 튜플의 주요 특징

특징 설명

불변성(Immutable) 한 번 값이 정의되면 변경, 삭제, 추가가 불가능합니다.
순서가 있음 인덱스를 통해 값에 접근할 수 있습니다.
중복 허용 동일한 값을 여러 번 포함할 수 있습니다.
다양한 데이터 타입 숫자, 문자열, 리스트, 다른 튜플 등 다양한 타입을 포함할 수 있습니다.
메모리 효율성 리스트보다 더 적은 메모리를 사용하여 효율적입니다.

✅ 3. 튜플의 기본 사용법

tuple_example = (1, 2, 3)
print(tuple_example)

출력 결과

(1, 2, 3)

✅ 4. 튜플은 불변성을 가짐 (수정/삭제 불가)

tuple_example = (1, 2, 3)
tuple_example[0] = 10  # ❌ 오류 발생

출력 결과

TypeError: 'tuple' object does not support item assignment
  • 튜플은 값을 변경할 수 없기 때문에, 수정이나 삭제는 불가능합니다.

✅ 5. 괄호 없이 튜플 생성하기

  • 튜플은 괄호 없이도 값을 콤마로만 구분하면 자동으로 튜플로 인식됩니다.
x, y, z = 1, 2, 3
print(x)
print(y)
print(z)

출력 결과

1
2
3
  • **1, 2, 3**은 괄호가 없지만, 자동으로 튜플로 인식됩니다.

✅ 6. 튜플을 이용한 값 교환

  • 튜플은 값을 교환할 때 아주 간단하게 사용할 수 있습니다.
x, y = 1, 2
print("Before swap:", x, y)

x, y = y, x
print("After swap:", x, y)

출력 결과

Before swap: 1 2
After swap: 2 1
  • x와 y의 값을 쉽게 교환할 수 있습니다.

✅ 7. 튜플을 반환하는 함수 예시

def get_coordinates():
    return (10, 20)

x, y = get_coordinates()
print(f"X: {x}, Y: {y}")

출력 결과

X: 10, Y: 20
  • 함수가 여러 값을 튜플로 반환하고, 이를 한 줄로 간단히 분해할 수 있습니다.

✅ 8. 튜플의 장점

  1. ✅ 불변성으로 인한 안정성: 값이 바뀌지 않아 프로그램이 더 안정적입니다.
  2. ✅ 메모리 효율성: 리스트보다 더 적은 메모리를 사용합니다.
  3. ✅ 가독성 향상: 불필요한 수정이 방지되어 코드를 읽기 쉬워집니다.
  4. ✅ 속도 향상: 불변성으로 인해 리스트보다 연산이 빠릅니다.

⚡️ 결론

  • 튜플은 변경이 불가능한 자료형으로, 데이터의 안정성을 보장하면서도 효율적인 코드를 작성할 수 있습니다.
  • 괄호 없이 **a, b = 1, 2**와 같은 방식으로도 사용 가능하여 코드가 간결해집니다.
  • 튜플의 불변성과 메모리 효율성을 적극 활용해보세요! 🚀

'Python' 카테고리의 다른 글

[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-11. 제너레이터  (0) 2025.03.13
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-10. 람다  (0) 2025.03.13
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-8. 조기 리턴 피보나치 수열  (0) 2025.03.13
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-7. 재귀 함수  (0) 2025.03.13
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-6. 함수의 기본활용  (0) 2025.03.13
'Python' 카테고리의 다른 글
  • [[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-11. 제너레이터
  • [[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-10. 람다
  • [[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-8. 조기 리턴 피보나치 수열
  • [[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-7. 재귀 함수
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (552) N
      • Python (31)
      • 프로젝트 (43)
      • 과제 (23)
      • Database (40)
      • 멘토링 (10) N
      • 특강 (25)
      • 기술블로그 (176) N
      • AI 분석 (3)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (52)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-9. 튜플
상단으로

티스토리툴바