반응형
Python의 튜플(Tuple)은 여러 값을 하나의 변수에 저장할 수 있는 시퀀스 자료형 중 하나입니다. 리스트와 비슷하지만, 중요한 차이점은 튜플은 변경 불가능(immutable)하다는 것입니다. 즉, 한 번 정의된 튜플의 내용은 변경할 수 없습니다. 이로 인해 튜플은 안전하게 데이터를 저장할 수 있으며, 변경되지 않아야 하는 데이터에 적합합니다.
튜플의 특징
- 정의: 튜플은 소괄호
()
를 사용하여 정의합니다. - 변경 불가능: 한 번 생성된 튜플의 요소는 변경할 수 없습니다.
- 순서가 있다: 리스트와 마찬가지로 튜플도 순서가 있으며, 인덱스를 통해 접근할 수 있습니다.
- 중복 허용: 튜플은 중복된 값을 가질 수 있습니다.
- 다양한 데이터 타입: 튜플은 다양한 데이터 타입의 요소를 가질 수 있습니다.
튜플 생성
# 빈 튜플
empty_tuple = ()
# 하나 이상의 요소가 있는 튜플
single_element_tuple = (1,)
my_tuple = (1, 2, 3, "a", "b", "c")
튜플 인덱싱과 슬라이싱
my_tuple = (1, 2, 3, 4, 5)
# 인덱싱
print(my_tuple[0]) # 출력: 1
print(my_tuple[-1]) # 출력: 5
# 슬라이싱
print(my_tuple[1:4]) # 출력: (2, 3, 4)
print(my_tuple[:3]) # 출력: (1, 2, 3)
print(my_tuple[3:]) # 출력: (4, 5)
print(my_tuple[::2]) # 출력: (1, 3, 5)
튜플의 불변성
튜플은 불변(immutable)이므로, 생성 후에 요소를 변경할 수 없습니다.
my_tuple = (1, 2, 3)
# 다음 코드는 오류를 발생시킵니다.
# my_tuple[0] = 10 # TypeError: 'tuple' object does not support item assignment
# 하지만, 튜플 자체를 재할당하는 것은 가능합니다.
my_tuple = (10, 20, 30)
print(my_tuple) # 출력: (10, 20, 30)
튜플 언패킹 (Tuple Unpacking)
튜플의 요소를 변수에 직접 할당할 수 있습니다.
my_tuple = (1, 2, 3)
a, b, c = my_tuple
print(a) # 출력: 1
print(b) # 출력: 2
print(c) # 출력: 3
튜플 메서드
튜플은 불변성이기 때문에 제공되는 메서드가 제한적입니다. 기본적으로 count()
와 index()
메서드를 사용할 수 있습니다.
my_tuple = (1, 2, 3, 2, 2, 4)
# 요소의 개수 세기
print(my_tuple.count(2)) # 출력: 3
# 요소의 인덱스 찾기
print(my_tuple.index(3)) # 출력: 2
튜플의 사용 예시
함수 반환 값으로 사용
여러 값을 반환해야 할 때 튜플을 사용합니다.
def get_coordinates():
x = 10
y = 20
return x, y
coords = get_coordinates()
print(coords) # 출력: (10, 20)
여러 변수에 값 할당
a, b, c = (1, 2, 3)
print(a) # 출력: 1
print(b) # 출력: 2
print(c) # 출력: 3
튜플과 리스트 간 변환
튜플을 리스트로, 리스트를 튜플로 변환할 수 있습니다.
my_list = [1, 2, 3]
my_tuple = tuple(my_list)
print(my_tuple) # 출력: (1, 2, 3)
my_tuple = (4, 5, 6)
my_list = list(my_tuple)
print(my_list) # 출력: [4, 5, 6]
튜플의 장점
- 불변성: 튜플은 불변이므로 데이터의 무결성을 유지할 수 있습니다.
- 메모리 효율성: 튜플은 리스트보다 메모리 사용이 더 적습니다.
- 속도: 튜플은 리스트보다 더 빠르게 동작합니다.
이와 같이 튜플은 변경되지 않아야 하는 데이터를 저장할 때 유용하며, 함수 반환 값으로 여러 값을 한 번에 반환하거나 변수에 여러 값을 할당할 때 자주 사용됩니다.
반응형
'언어 > Python' 카테고리의 다른 글
[ Python ] 딕셔너리 사용하기 (0) | 2024.06.03 |
---|---|
[ Python ] 리스트 (List)와 튜플 (Tuple)의 차이 (1) | 2024.06.03 |
[ Python ] for문 사용하기 (1) | 2024.06.03 |
[ Python ] 리스트 사용하기 (0) | 2024.06.03 |
[ Python ] 문자열 다루기 (1) | 2024.06.03 |