파이썬은 데이터 유형을 다루는데 효과적인 다양한 자료형들을 제공합니다. 그 중 튜플(tuple
)은 리스트와 같은 컨테이너 자료형으로서 다른 자료를 저장하는데 사용됩니다.
오늘은 튜플에 대해 공부 할 예정입니다. 오늘은 지난시간 공부했던 리스트와 어떤 차이가 있는지를 파악 한다는 느낌으로 학습하신다면 이해가 더 빠를 것 같습니다!
리스트에 관한 내용은 지난 포스팅을 참고하시기 바랍니다.
파이썬 기초 – 7장. 파이썬 리스트 자료형
1. 파이썬 튜플이란? (tuple)
위에서 설명한 것과 같이 튜플은 리스트 처럼 여러 개의 데이터를 저장하는데 사용되지만, 튜플은 불변(immutable)하다는 것이 특징이 있습니다.
이는 튜플이 생성된 이후에는 항목의 추가, 삭제, 수정이 불가능하다는 의미입니다. 따라서 변경을 하면 안 되는 데이터를 튜플 자료형을 이용하여 저장을 하는 방식을 많이 사용합니다.
2. 파이썬 튜플 생성 및 접근
튜플은 소괄호(()
)를 사용하여 생성하며, 각 항목은 쉼표(,
)로 구분됩니다. 괄호를 표현하지 않고 만든다면 데이터는 기본적으로 튜플로 생성됩니다.
튜플 내의 항목에는 다양한 데이터 유형이 포함될 수 있습니다. 리스트와 마찬가지로 순서가 있기 때문에 , 인덱스(index)를 사용하여 접근이 가능합니다.
# 튜플 생성
fruits = ("사과", "바나나", "딸기")
colors = "빨강", "파랑", "노랑"
# 튜플 항목 접근
first_fruit = fruits[0] # "사과"
second_fruit = fruits[1] # "바나나"
튜플을 만들 때 하나 주의해야 할 사항이 있습니다. 데이터가 1개인 튜플을 만들 때 입니다. 아래의 예시를 보면, 데이터가 1개인 튜플을 소괄호로만 묶을 경우 string으로 인식하게 됩니다. 따라서 이럴 경우에는 콤마를 활용하여 튜플을 생성합니다.
a = "Hello world"
b = ("Hello world")
c = ("Hello world",)
print(a) # Hello world
print(b) # Hello world
print(c) # ('Hello world',)
print(type(a)) # <class 'str'>
print(type(b)) # <class 'str'>
print(type(c)) # <class 'tuple'>
3. 튜플의 장점
불변(immutable)의 특징을 고려하면 튜플은 아래와 같은 장점이 있습니다.
- 불변성을 가지므로 안정적인 데이터 보관이 가능하다.
- 리스트보다 메모리를 적게 사용한다.
- 딕셔너리의 키로 사용할 수 있다.
4. 파이썬 튜플과 리스트의 차이점
사실 튜플은 수정/추가/삭제가 불가능하기 때문에 사용에 제약이 많습니다. 순서가 있는 데이터를 저장하고자 한다면 우선 List를 우선순위에 두시고, 그 중 데이터가 변경 되면 안 될 경우에 튜플을 적용하는 방식으로 이용하면 되빈다.
- 튜플은 불변(immutable), 리스트는 가변(mutable).
- 튜플은 소괄호(
()
)를 사용하여 생성하며, 리스트는 대괄호([]
)를 사용. - 튜플은 항목 추가, 삭제, 수정 불가능, 리스트는 가능.
5. 튜플 메소드
데이터를 추가/수정/석제가 불가능한 튜플의 특성상 사용할 수 있는 메소드는 리스트에 비해 한정적입니다. 기본적인 +/* 연산 및 sorted(), sum() 등을 사용 가능하나, 변경 된 데이터는 새로운 변수에 저장하여 사용 하는 방식을 이용합니다.
메소드 | 설명 |
len() | 튜플의 길이를 반환 |
max() | 튜플에서 가장 큰 값을 반환 |
min() | 튜플에서 가장 작은 값을 반환 |
sorted() | 튜플을 정렬하여 새로운 튜플 반환 |
sum() | 튜플의 항목들의 합을 반환 |
이해가 쉽도록 튜플의 메소드 예시를 아래 작성해 보았습니다. 주의해야 할 사항은 sotred()의 경우 결과 값을 list로 반환한다는 점입니다. 파이썬 코딩에 익숙해 지기 전까진 변수 및 반환값을 type() 함수를 이용하여 데이터 type을 확인 하는 습관을 가지면 자료형에 대한 이해도를 높힐 수 있습니다.
# 튜플 생성
fruits = ("사과", "바나나", "딸기")
# len() 메소드 사용
length = len(fruits)
print(length) # 3
# max() 메소드 사용
numbers = (3, 9, 2, 7, 5)
max_value = max(numbers)
print(max_value) # 9
# min() 메소드 사용
min_value = min(numbers)
print(min_value) # 2
# sorted() 메소드 사용
sorted_numbers = sorted(numbers)
print(sorted_numbers) # [2, 3, 5, 7, 9]
# sum() 메소드 사용
total = sum(numbers)
print(total) # 26
6. 마무리
이 글에서는 파이썬 튜플의 개념과 활용법, 리스트와의 차이점에 대해 알아보았습니다. 튜플은 불변성을 통해 안정적인 데이터 저장이 필요한 경우에 유용한 자료형입니다. 리스트와의 차이점을 잘 이해하고 적재적소에 활용한다면 상당히 유용하게 사용이 가능합니다.
다음시간에는 마지막 컨테이너 자료형인 딕셔너리에 대해서 포스팅 예정입니다. 순서가 없는 데이터를 저장하는데 유용한 데이터로 빠른 속도로 처리가 가능한 장점이 있습니다.
감사합니다. “끝”