반응형
튜플(Tuple)
튜플(Tuple)은 파이썬에서 사용하는 데이터 타입 중 하나로, 여러 개의 값을 하나의 변수에 저장할 수 있는 자료구조입니다. 튜플은 리스트와 비슷하지만, 몇 가지 중요한 차이점이 있습니다.
튜플의 특징
- 변경 불가능 (Immutable): 튜플의 가장 큰 특징은 한 번 생성되면 값을 변경할 수 없다는 점입니다. 리스트는 값의 추가, 삭제, 변경이 가능하지만, 튜플은 이러한 작업이 불가능합니다.
- 순서가 있다 (Ordered): 튜플은 값들이 저장된 순서를 유지합니다. 따라서 인덱스를 통해 특정 위치의 값을 접근할 수 있습니다.
- 중복 허용 (Allow Duplicates): 튜플 내에 동일한 값을 여러 번 가질 수 있습니다.
- 다양한 데이터 타입 저장 가능 (Heterogeneous): 튜플은 정수, 문자열, 리스트 등 서로 다른 데이터 타입을 함께 저장할 수 있습니다.
튜플의 생성
튜플을 생성하는 방법은 간단합니다. 소괄호 ()
를 사용하거나 콤마 ,
로 값을 구분하여 생성할 수 있습니다.
# 소괄호를 사용한 튜플 생성
tuple1 = (1, 2, 3)
# 콤마로 구분하여 생성
tuple2 = 1, 2, 3
# 하나의 요소를 가진 튜플 생성 (콤마가 필요)
tuple3 = (1,)
# 빈 튜플 생성
empty_tuple = ()
튜플의 접근
튜플의 값은 인덱스를 사용하여 접근할 수 있습니다. 인덱스는 0부터 시작합니다.
my_tuple = (10, 20, 30, 40, 50)
print(my_tuple[0]) # 10
print(my_tuple[2]) # 30
# 음수 인덱스 사용 (뒤에서부터 접근)
print(my_tuple[-1]) # 50
print(my_tuple[-3]) # 30
튜플의 연산
튜플은 리스트와 유사하게 여러 가지 연산을 지원합니다. 하지만 튜플은 불변이기 때문에 리스트와 달리 값을 변경할 수는 없습니다.
# 튜플 병합
tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
merged_tuple = tuple1 + tuple2
print(merged_tuple) # (1, 2, 3, 4, 5, 6)
# 튜플 반복
repeated_tuple = tuple1 * 3
print(repeated_tuple) # (1, 2, 3, 1, 2, 3, 1, 2, 3)
튜플의 사용 예시
튜플은 주로 변경되지 않아야 하는 데이터를 그룹화할 때 사용됩니다. 예를 들어, 함수에서 여러 개의 값을 반환할 때 사용하거나, 고정된 데이터 구조를 표현할 때 유용합니다.
함수에서 여러 값 반환
def get_student_scores():
return (95, 85, 77)
math, science, english = get_student_scores()
print(math) # 95
print(science) # 85
print(english) # 77
딕셔너리의 키로 사용
튜플은 변경 불가능하기 때문에 딕셔너리의 키로 사용할 수 있습니다. 리스트는 변경 가능하기 때문에 키로 사용할 수 없습니다.
location = {
(37.5665, 126.9780): "Seoul",
(35.6895, 139.6917): "Tokyo"
}
print(location[(37.5665, 126.9780)]) # Seoul
튜플과 리스트의 비교
특징 | 튜플 (Tuple) | 리스트 (List) |
---|---|---|
가변성 | 불변 (Immutable) | 가변 (Mutable) |
선언 방법 | 소괄호 () 또는 콤마 , |
대괄호 [] |
사용 예시 | 변경되지 않아야 하는 데이터 그룹화 | 데이터의 추가, 삭제, 변경이 필요할 때 |
튜플은 데이터의 불변성을 보장할 때 유용하고, 리스트는 데이터의 가변성을 활용할 때 적합합니다. 이 두 가지 자료구조를 상황에 맞게 활용하면 더 효과적인 파이썬 프로그래밍이 가능합니다.
'실버를 위한 코딩 > 파이썬' 카테고리의 다른 글
[python] 웹 API를 통해 데이터를 획득하는 과정 (0) | 2024.07.17 |
---|---|
panda 라이브러리, iloc (0) | 2024.07.03 |
[파이썬] `map()` 함수와 `filter()` 함수 (0) | 2024.06.29 |
[파이썬] `sorted()` 함수와 `sort()` 메서드 (0) | 2024.06.28 |
[파이썬] 람다(lambda) 함수는? (0) | 2024.06.27 |