튜플 언패킹과 *args

2023. 5. 17. 16:21Python is Free/Fluent Python

튜플에 관한 오해

튜플은 리스트와 immutable/mutable한 자료구조로 구분되곤 합니다.

 

그런데 사실, 튜플은 리스트와 마찬가지로 값의 주소를 저장하는 형태입니다.

Tuple(fluent python ver2)

 

따라서 튜플의 3번째 원소인 [1,2]와 같은 경우 새로운 원소를 추가하거나,

변형하는 게 가능합니다.

 

tuple_example = (10,'alpha',[1,2])
tuple_example[-1].apppend(3)

 

튜플 언패킹

이 성질을 잘 이용하면, argument 등을 잘 다루거나 보존하는 데 사용할 수 있습니다.

tuple_example2 = (1, 2, 3, 4, 5)

first, *middle, last = tuple_data

print(f"First: {first}, Middle: {middle}, Last: {last}")

*middle은 2,3,4 값을 한데 묶어 출력합니다.