파이썬 데이터 구조: 튜플(Tuple)
튜플의 특징과 활용 사례
튜플(Tuple)은 파이썬에서 순서가 있는 데이터 구조로, 리스트와 비슷하지만 수정이 불가능하다는 점에서 차이가 있습니다. 이번 글에서는 튜플의 특징과 활용 사례를 살펴보겠습니다.
1. 튜플이란?
- 튜플은 변경할 수 없는(immutable) 데이터 구조입니다.
- 데이터를 저장할 때 안전성을 보장하며, 읽기 전용 데이터에 적합합니다.
- 소괄호
()
를 사용하여 생성합니다.
예제
1
2
3
4
5
6
# 튜플 생성
fruits = ("apple", "banana", "cherry")
numbers = (1, 2, 3, 4, 5)
print(fruits) # 출력: ('apple', 'banana', 'cherry')
print(numbers) # 출력: (1, 2, 3, 4, 5)
2. 튜플의 주요 특징
1) 수정 불가능(Immutable)
- 튜플의 요소는 생성 후 변경할 수 없습니다.
1 2
t = (1, 2, 3) t[0] = 10 # 오류: TypeError: 'tuple' object does not support item assignment
2) 순서가 있음
- 인덱스를 사용하여 튜플의 특정 요소를 참조할 수 있습니다.
1 2 3
t = (10, 20, 30) print(t[0]) # 출력: 10 print(t[-1]) # 출력: 30
3) 중복 허용
- 동일한 값을 여러 번 저장할 수 있습니다.
1 2
t = (1, 1, 2, 2, 3) print(t) # 출력: (1, 1, 2, 2, 3)
4) 데이터 타입 혼합 가능
- 튜플은 다양한 데이터 타입을 저장할 수 있습니다.
1 2
mixed = (1, "apple", 3.5, True) print(mixed) # 출력: (1, 'apple', 3.5, True)
3. 튜플의 주요 메서드
튜플은 수정이 불가능하기 때문에 메서드가 제한적입니다.
메서드 | 설명 | 예제 | 결과 |
---|---|---|---|
count() | 특정 값의 개수 반환 | (1, 2, 2).count(2) | 2 |
index() | 특정 값의 첫 번째 인덱스 반환 | (1, 2, 3).index(3) | 2 |
예제
1
2
3
4
5
6
7
t = (1, 2, 3, 2)
# 값의 개수 세기
print(t.count(2)) # 출력: 2
# 특정 값의 인덱스 찾기
print(t.index(3)) # 출력: 2
4. 튜플의 활용
1) 여러 값 한 번에 반환
- 튜플은 함수에서 여러 값을 반환할 때 유용합니다. ```python def get_coordinates(): return (37.7749, -122.4194) # 위도와 경도 반환
coordinates = get_coordinates() print(coordinates) # 출력: (37.7749, -122.4194)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
**2) 리스트와 변환**
- 튜플을 리스트로 변환하면 수정이 가능하고, 다시 튜플로 변환하여 안전성을 유지할 수 있습니다.
```python
t = (1, 2, 3)
# 튜플을 리스트로 변환
l = list(t)
l.append(4)
print(l) # 출력: [1, 2, 3, 4]
# 리스트를 튜플로 변환
t = tuple(l)
print(t) # 출력: (1, 2, 3, 4)
3) 데이터의 안정적 저장
- 튜플은 데이터가 변경되지 않아야 하는 경우에 적합합니다.
1 2
config = ("localhost", 8080) print(config)
4) 튜플 언패킹
- 튜플의 값을 여러 변수에 나누어 저장할 수 있습니다. ```python person = (“Alice”, 30, “Engineer”)
name, age, job = person print(name) # 출력: Alice print(age) # 출력: 30 print(job) # 출력: Engineer ```
5. 튜플 vs 리스트
특징 | 튜플(Tuple) | 리스트(List) |
---|---|---|
수정 가능 여부 | 불가능 (Immutable) | 가능 (Mutable) |
속도 | 더 빠름 | 더 느림 |
사용 사례 | 변경되지 않아야 하는 데이터 | 동적으로 변하는 데이터 |
기호 | () | [] |
정리
- 튜플은 불변(Immutable) 데이터 구조로, 데이터를 안전하게 관리해야 하는 상황에 적합합니다.
- 튜플 언패킹과 같은 기능은 코드의 가독성을 높입니다.
- 리스트와 튜플을 변환하여 데이터의 특성에 맞게 사용할 수 있습니다.
다음 글 예고:
파이썬의 또 다른 유용한 데이터 구조인 “딕셔너리(Dictionary)”를 학습하며, 키-값 쌍 데이터의 관리 방법을 알아보겠습니다!
This post is licensed under CC BY 4.0 by the author.