📌 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()는 몫과 나머지를 튜플로 반환.
✅ 이해도 체크리스트
- 튜플의 특징은?
- 불변성(Immutable): 생성된 후 요소를 변경할 수 없음.
- 소괄호 사용: (1, 2, 3) 형식으로 생성.
- 소괄호 생략 가능: 1, 2, 3처럼 쉼표로 구분하여 생성 가능.
- 다양한 자료형 저장: oz_tuple = (1, "hello", 3.14)
- 간단한 값 교환 가능: x, y = y, x
- 여러 값 반환 가능: return (1, 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. 튜플의 장점
- ✅ 불변성으로 인한 안정성: 값이 바뀌지 않아 프로그램이 더 안정적입니다.
- ✅ 메모리 효율성: 리스트보다 더 적은 메모리를 사용합니다.
- ✅ 가독성 향상: 불필요한 수정이 방지되어 코드를 읽기 쉬워집니다.
- ✅ 속도 향상: 불변성으로 인해 리스트보다 연산이 빠릅니다.
⚡️ 결론
- 튜플은 변경이 불가능한 자료형으로, 데이터의 안정성을 보장하면서도 효율적인 코드를 작성할 수 있습니다.
- 괄호 없이 **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 |