소연의_개발일지
Published 2023. 4. 13. 19:45
[파이썬] 튜플(Tuple) 개발공부/Python

튜플은 쉼표로 구분되는 여러 값으로 구성된다.

t = 12345, 54321, 'hello!'

print(t[0]) # 12345
print(t) # (12345, 54321, 'hello!')

 

 

튜플은 중첩될 수 있다.

#튜플은 중첩될 수 있다.
u = t, (1, 2, 3, 4, 5)
print(u) # ((12345, 54321, 'hello!'), (1, 2, 3, 4, 5))

 

튜플은 불변한다.

# 튜플은 불변한다.
# t[0] = 98888
# TypeError: 'tuple' object does not support item assignment

튜플은 리스트와 비슷한 자료형으로, 여러 개의 값을 담을 수 있습니다.

하지만 리스트와 달리, 튜플은 값을 변경할 수 없습니다.

즉, 튜플은 불변(immutable)합니다.

따라서, t[0] = 98888과 같이 인덱스를 사용하여 값을 변경하려고 하면, TypeError: 'tuple' object does not support item assignment 오류가 발생합니다. 이는 튜플이 불변하기 때문에 값을 변경할 수 없다는 의미입니다.

 

하지만 가변 객체를 포함할 수 있습니다.

밑 예제에서는 딕셔너리를 포함한 예시입니다.

# 하지만 가변 객체를 포함할 수 있다.
v = ([1, 2, 3], [3, 2, 1])
print(v) # ([1, 2, 3], [3, 2, 1])

 

튜플은 항상 괄호로 둘러싸여 있어서 중첩된 튜플을 올바르게 해석할 수 있도록 합니다.

괄호를 사용하여 튜플을 입력하거나 입력하지 않을 수 있지만,

튜플이 큰 표현식의 일부인 경우 괄호가 필요합니다.

 

하지만 튜플의 항목을 개별적으로 할당할 수는 없지만 가변 객체를 포함할 수는 있습니다.

따라서, 값이 변경되지 않는 경우에 사용합니다.

 

튜플은 리스트와 유사해 보일 수 있지만, 일반적으로 다른 상황에서 다른 목적으로 사용됩니다.

튜플은 불변하며 대개 이질적인 시퀀스의 요소를 포함하고 있으며,

언패킹(이후에 설명) 또는 인덱싱(또는 이름 있는 튜플의 경우 속성으로도)을 통해 액세스됩니다.

리스트는 가변적이며 요소는 대개 동일하며 리스트를 반복하여 액세스합니다.

 

튜플에 포함된 0 또는 1개의 항목을 구성하는 특별한 문제가 있습니다.

이러한 경우 구문에 일부 추가적인 기능이 필요합니다.

빈 튜플은 빈 괄호로 구성됩니다. 하나의 항목을 가진 튜플은 값 뒤에 쉼표를 가져야 합니다.

(단일 값을 괄호로 둘러싸는 것만으로는 충분하지 않음).

좀 못생겼지만 효과적입니다. 예를 들어:

 

t = ()
print(t) # ()
t = (1,)
print(t) # (1,)
t = (1, 'hello', [1, 2, 3])
print(t) # (1, 'hello', [1, 2, 3])

x, y, z = t

이것은 적절하게 호출되는 시퀀스 언패킹입니다.

오른쪽에있는 모든 시퀀스에 대해 작동하며,

시퀀스 언패킹은 할당 기호 왼쪽에있는 변수 수가 시퀀스의 요소 수와 같아야한다는 것을 의미합니다.

여러 할당은 실제로 튜플 패킹과 시퀀스 언패킹의 조합입니다. (오 이해안됨ㅋ)

profile

소연의_개발일지

@ssoyxon

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!