# 튜플 객체 생성
t = ('white', 'black', 'yellow')
print(t)
print(type(t))
결과)
('white', 'black', 'yellow')
<class 'tuple'>
# 요소가 1개라면 소괄호를 사용해도 의미가 없다.
t = ('white')
print(t)
print(type(t))
결과)
white
<class 'str'>
# 요소가 2개 이상이라면 소괄호가 없어도 기본적으로 튜플이 생성된다.
t = 'white', 'black'
print(t)
print(type(t))
결과)
('white', 'black')
<class 'tuple'>
# comma 연산자로 생성한다.
t = 1, 2, 3, 4
print(t)
결과)
(1, 2, 3, 4)
# 튜플은 수정이 불가능하다.
t = 'first', 'second'
t[0] = 'third'
결과)
TypeError: 'tuple' object does not support item assignment
# 리스트를 튜플로 변환하기
l = ['white', 'black']
t = tuple(l)
print(t)
결과)
('white', 'black')
# 튜플의 요소를 꺼내는 정형화된 방식을 언패킹이라 한다. 리스트에도 사용 가능하나 튜플에서 자주 쓰이며 컨테이너의 크기를 사전에 알고 있어야 한다.
l = ['white', 'black']
first, second = l
print(first)
print(second)
결과)
white
black
# 요소 개수가 일치하지 않으면 에러가 발생한다.
l = ['white', 'black']
first, second, third = l
print(first)
print(second)
결과)
ValueError: need more than 2 values to unpack
# 튜플의 슬라이싱 결과는 튜플이다.
t = 'white', 'black'
print(t[:])
결과)
('white', 'black')
# 슬라이싱에 '[', ']'를 사용한다고 해서 리스트인 것은 아니다.
t = 'white', 'black'
print(t[0])
print(type(t[0]))
결과)
white
<class 'str'>
# 인덱스로 리스트를 순회할 때 내장 함수 enumerate()를 사용할 수 있다. 이 함수는 시퀀스 타입을 하나 받아 두 개의 튜플로 되돌려준다. 각 튜플 요소에는 인덱스와 원래 리스트 요소가 담겨있다. 이 튜플을 for 문의 두 개 변수로 언패킹이 가능하다.
l = ['alpha', 'beta', 'gamma']
for i, letter in enumerate(l):
print(i, letter)
결과)
0 alpha
1 beta
2 gamma
# 리스트에서의 변수 교환
x = [1, 2]
y = [3, 4]
x, y = y, x
print(x)
print(y)
결과)
x = [1, 2]
y = [3, 4]
# 튜플에서의 변수 교환
a = (1, 2)
b = (3, 4)
a, b = b, a
print('a:', a)
print('b:', b)
결과)
a: (3, 4)
b: (1, 2)
# enumerate() 함수는 인덱스와 요소의 튜플을 리턴한다. 리턴된 튜플이 함수에 적용되면서 개수에 맞게 언팩킹된다.
t = tuple('abcde')
for value in enumerate(t):
print('{}: {}'.format(*value))
결과)
0: a
1: b
2: c
3: d
4: e
댓글 영역