Post

파이썬 데이터 구조: 튜플(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.