# Tuple Advanced
# Unpacking
print(divmod(100, 9))
# 인자를 언패킹해서 전달
print(divmod(*(100, 9)))
# 결과를 언패킹해서 출력
print(*(divmod(100,9)))
이정도 언패킹은 이제 이해가 될 것임…
그렇다면 이건 어떨까
x, y, rest = range(10)
이상태로 실행하면 인자가 변수가 부족하다고 한다. 10개를 풀어야 하는데 세개밖에 없어서..
이럴때는?
x, y, *rest = range(10)
print(x, y, rest)
rest에 나머지가 리스트로 들어가있다.
이게 왜 언패킹??? 이건 뭐지…? 왜 rest는 갑자기 리스트가 된 걸까???
저건 가변인자를 받을때 함수 파라미터에
*
를 붙여주는 것과 같은 문법으로 이해하면 이해가 되긴 한다… 리스트는 파이썬이*
를 받기 위해 선택한 자료구조임.
다음의 예시 코드를 보자.
# Mutable(가변) vs Immutable(불변)
t = (15, 20, 24)
l = [15, 20, 24]
print(t, id(t))
print(l, id(l))
t = t * 2
l = l * 2
print(t, id(t))
print(l, id(l))