튜플은 변경 불가능한(immutable) 순서가 있는 시퀀스(sequence) 자료형.
List와 비슷하게 여러 요소를 저장가능하지만, 한번 생성된 튜플의 요소들은 변경 불가 하고, 데이터의 무결성을 보장 한다.
List와 달리 튜플은 ()소괄호로 이루어져있다.
(1, 'apple', 3.14, [4, 5])
((1, 2), (3, 4), (5, 6))
my_tuple = (1, 2, 3)
my_tuple = 1, 2, 3
empty_tuple = ()
single_element_tuple = (1, )
# 튜플 불가
not_a_tuple = (1)
my_tuple = ('a', 'b', 'c', 'd')
print(my_tuple[0]) # 출력 : 'a' - 첫번재 요소
print(my_tuple[-1]) # 출력 : 'd' - 마지막 요소
# 인덱스 1부터 2까지의 요소를 추출하여 sub_tuple에 저장
sub_tuple = my_tuple[1:3] # ('b', 'c')
# 튜플 병합
tuple1 = (1, 2)
tuple2 = (3, 4)
combined = tuple1 + tuple2 # (1, 2, 3, 4)
# 튜플 반복
repeated = tuple1 * 3 # (1, 2, 1, 2, 1, 2)
print(len(my_tuple)) # 요소 개수
# 특정값 존재여부
print('a' in my_tuple) # True
#최대값, 최소값 (요소들이 비교 가능해야함.)
numbers = (1, 5, 3)
print(max(numbers)) # 5 출력
print(min(numbers)) # 1 출력
packed = 1, 2, 3 # (1, 2, 3)
a, b, c = packed
print(a, b, c) # 출력 : 1, 2, 3
# unpaking시 불필요한 값 생략
x, , , y, z = (1, -1, 0, 2, 5)
- 1은 x에 , 2는 y, 5는 z에 담음
- -1과 0은 _에 할당하여 코드의 가독성을 높임.
#### unpacking 시에 * 를 사용하여 불필요한 값 생략
a, *b, c = (10, 20, 30, 40, 50)
- a = 10
- b = [20, 30, 40] # 중간의 모든 값을 리스트로 저장되어 변수 b에 저장됨..
- c = 50
- 활용 : 요소의 개수가 가변적일때, 나머지 값을 하나의 변수에 담아 처리.