Python

[python] list앞에 붙은 * (unpacking)

unpacking을 이해하기 위해 아래와 같은 함수가 있다고 가정해보자

 def print_numbers(a, b, c):
     print(a)
     print(b)
     print(c)

위의 print_numbers함수에 (10,20,30)을 넣어주면 10, 20, 30이 각 줄에 출력될 것이다.

unpacking

인수를 순서대로 넣을 때 리스트나 튜플을 사용할 수 있는데, 리스트와 튜플 앞에 *(애스터리스크)를 붙여 인자들을 일일히 넘기는 효과와 같은 효과를 준다. 즉 "리스트의 포장을 풀어준다"라고 이해하면 된다.

  • 함수 (*리스트)
  • 함수 (*튜플)
x = [10, 20, 30]
print_number(*x)

위 함수는 위와 같은 출력의 결과를 갖게 된다. 

[ ref ]

https://dojang.io/mod/page/view.php?id=2345