
Python Tuple 알아보기
# chapter03-4
# 파이썬 튜플
# 리스트와 비교 중요
# 튜플 자료형 (순서 O, 중복 O, 수정 X, 삭제 X) # 불변(Immutable)
# 선언
a = ()
b = (1,) # 원소가 하나면 끝에 ,(콤마)가 있어야 함
c = (11, 12, 13, 14)
d = (100, 1000, 'Ace', 'Base', 'Captain')
e = (100, 1000, ('Ace', 'Base', 'Captain'))
print(type(a), type(b))
# <class 'tuple'> <class 'tuple'>
# 인덱싱
print('>>>>>')
print('d - ', d[1]) # 1000
print('d - ', d[0] + d[1]) # 1100
print('d - ', d[0] + d[1] + d[1]) # 2100
print('d - ', d[-1]) # Captain
print('e - ', e[-1]) # ('Ace', 'Base', 'Captain')
print('e - ', e[-1][1]) # Base
print('e - ', list(e[-1][1])) # ['B', 'a', 's', 'e']
# 수정 진짜 안되나..!?
# d[0] = 1500 # TypeError 발생 (튜플은 불변)
# 슬라이싱
print('>>>>>')
print('d - ', d[0:3]) # (100, 1000, 'Ace')
print('d - ', d[2:]) # ('Ace', 'Base', 'Captain')
print('e - ', e[2][1:3]) # ('Base', 'Captain')
# 튜플 연산
print('>>>>>')
print('c + d - ', c + d) # (11, 12, 13, 14, 100, 1000, 'Ace', 'Base', 'Captain')
print('c * 3 - ', c * 3) # (11, 12, 13, 14, 11, 12, 13, 14, 11, 12, 13, 14)
# 튜플 함수
a = (5, 2, 3, 1, 2)
print('a - ', a) # (5, 2, 3, 1, 2)
print('a - ', a.index(3)) # 2 (3의 인덱스 위치)
print('a - ', a.count(2)) # 2 (값 2의 개수)
# 패킹 & 언패킹 (Packing and Unpacking)
# 패킹
t = ('foo', 'bar', 'baz', 'qux')
print('t - ', t) # ('foo', 'bar', 'baz', 'qux')
print('t - ', t[0]) # foo
print('t - ', t[-1]) # qux
# 언패킹 1
(x1, x2, x3, x4) = t
print(type(x1), type(x2), type(x3), type(x4))
# <class 'str'> <class 'str'> <class 'str'> <class 'str'>
print(x1, x2, x3, x4) # foo bar baz qux
# 패킹 & 언패킹
t2 = (1, 2, 3)
t3 = 4, # 원소가 하나면 튜플로 인식
x1, x2, x3 = t2
x4, x5, x6 = 4, 5, 6
print(t2) # (1, 2, 3)
print(t3) # (4,)
print(x1, x2, x3) # 1 2 3
print(x4, x5, x6) # 4 5 6
print(type(t2), type(t3)) # <class 'tuple'> <class 'tuple'>
print(type(x1)) # <class 'int'>