1. 튜플이란?
튜플(Tuple)은 여러 값을 순서대로 저장하며, 변경할 수 없는 특성을 가지고 있는 데이터 구조입니다.
주로 데이터가 변경되지 않아야 하는 경우에 사용되며, 코드를 더 안전하고 명확하게 작성할 수 있도록 도와줍니다.
튜플의 주요 특징:
- 순서가 있다: 인덱스를 사용하여 값에 접근할 수 있습니다.
- 변경할 수 없다: 생성 후 값을 수정하거나 삭제할 수 없습니다.
- 중복을 허용한다: 동일한 값을 여러 번 포함할 수 있습니다.
2. 튜플의 생성 방법
튜플은 소괄호( )를 사용하여 생성합니다.
값이 하나만 있는 경우, 쉼표(,)를 반드시 추가해야 튜플로 인식됩니다
# 튜플 생성 예시
empty_tuple = () # 빈 튜플
single_element = (5,) # 요소가 하나인 튜플 (쉼표 필수)
multiple_elements = (1, 2, 3) # 여러 요소가 있는 튜플
# 소괄호 없이도 튜플 생성 가능
implicit_tuple = 1, 2, 3
2.1 튜플 언패킹(Unpacking):
튜플을 생성할 때 각 요소를 변수에 할당할 수 있습니다.
a, b, c = (1, 2, 3)
print(a) # 출력: 1
print(b) # 출력: 2
print(c) # 출력: 3
3. 튜플의 주요 특징
3.1 변경 불가능
- 튜플의 요소는 생성 후 수정할 수 없습니다.
t = (1, 2, 3)
t[0] = 5 # 오류 발생: TypeError
3.2 빠른 처리 속도
- 변경이 불가능하므로, 리스트보다 속도가 빠르고 메모리 사용이 효율적입니다.
- 또한, 해싱이 가능하므로 최적화된 데이터 구조로 활용이 가능합니다.
3.3 인덱싱 및 슬라이싱 가능: 리스트와 유사하게 인덱싱과 슬라이싱을 지원합니다
t = (1, 2, 3, 4, 5)
print(t[1]) # 출력: 2
print(t[1:4]) # 출력: (2, 3, 4)
3.4 다양한 자료형 포함 가능
- 튜플 내부에 서로 다른 자료형을 저장할 수 있습니다.
mixed_tuple = (1, "hello", [3, 4, 5])
4. 튜플 다루기
튜플은 요소를 수정하거나 삭제할 수 없지만, 리스트와 유사하게 여러 연산과 함수를 지원합니다.
4.1 인덱싱
- 튜플은 리스트처럼 인덱싱을 통해 특정 위치의 값을 가져올 수 있습니다.
# 튜플 인덱싱 예제
example_tuple = (10, 20, "apple", "banana")
print(example_tuple[0]) # 출력: 10
print(example_tuple[3]) # 출력: banana
4.2 슬라이싱
- 튜플의 일부를 슬라이싱(slicing)을 통해 가져올 수 있습니다. 슬라이싱은 리스트와 동일한 문법을 사용합니다.
# 튜플 슬라이싱 예제
example_tuple = (10, 20, "apple", "banana")
print(example_tuple[1:]) # 출력: (20, 'apple', 'banana')
print(example_tuple[:2]) # 출력: (10, 20)
4.3 튜플 더하기
- 튜플 간의 더하기 연산은 두 튜플을 합쳐 새로운 튜플을 만듭니다. 기존 튜플은 변화하지 않습니다.
# 튜플 더하기 예제
tuple_a = (1, 2, 3)
tuple_b = ("x", "y")
result = tuple_a + tuple_b
print(result) # 출력: (1, 2, 3, 'x', 'y')
4.4 튜플 곱하기
- 튜플에 정수를 곱하면 반복된 튜플이 생성됩니다.
# 튜플 곱하기 예제
tuple_a = (0, 1)
result = tuple_a * 3
print(result) # 출력: (0, 1, 0, 1, 0, 1)
4.5 튜플 길이 구하기
- 튜플의 길이는 len() 함수를 사용하여 쉽게 확인할 수 있습니다.
# 튜플 길이 확인 예제
example_tuple = (100, 200, 300, 400)
print(len(example_tuple)) # 출력: 4
5. 튜플과 리스트의 차이점
가변성 | 변경 불가능 | 변경 가능 |
기호 | () | [] |
사용 목적 | 변경되지 않는 데이터 저장 | 자주 변경되는 데이터 저장 |
속도 | 리스트보다 빠름 | 튜플보다 느림 |
'Language > Python' 카테고리의 다른 글
sorted() 함수의 key=lambda 사용해서 정렬하기 (0) | 2025.04.28 |
---|---|
index() 함수 (0) | 2025.04.20 |
리스트 자료형 (0) | 2024.12.30 |
문자열 자료형 (0) | 2024.12.29 |
숫자형 (Numeric Types) (1) | 2024.12.26 |