Python中*参数的解包顺序
我想知道为什么变量Python中*参数的解包顺序,python,python-3.x,args,Python,Python 3.x,Args,我想知道为什么变量last是5 当我这样做的时候 first, *rest, last = 1,2,3,4,5 我以为作业是从左到右的,所以 *rest将是[2,3,4,5],但实际上是[2,3,4] 我认为last将是空的,或者这段代码将导致错误,但令人惊讶的是它可以工作,但我不明白为什么这是一个仅在Python 3中有效的语法,称为“扩展解包”,它在PEP 3132中定义-这是一个仅在Python 3中有效的语法,称为“扩展解包”它在PEP 3132-中定义,只是因为它是解包功能 firs
last
是5
当我这样做的时候
first, *rest, last = 1,2,3,4,5
我以为作业是从左到右的,所以
*rest
将是[2,3,4,5]
,但实际上是[2,3,4]
我认为last将是空的,或者这段代码将导致错误,但令人惊讶的是它可以工作,但我不明白为什么这是一个仅在Python 3中有效的语法,称为“扩展解包”,它在PEP 3132中定义-这是一个仅在Python 3中有效的语法,称为“扩展解包”它在PEP 3132-中定义,只是因为它是解包功能
first
和last
只是变量,而*rest
是参数,因此它们获取元组中first
和last
之间的所有值(1,2,3,4,5)
如果你想让你写:
[2,3,4,5]
然后使用:
first, *args = 1,2,3,4,5
# first --> 1
# args --> [2,3,4,5]
只是因为它是解包功能
first
和last
只是变量,而*rest
是参数,因此它们获取元组中first
和last
之间的所有值(1,2,3,4,5)
如果你想让你写:
[2,3,4,5]
然后使用:
first, *args = 1,2,3,4,5
# first --> 1
# args --> [2,3,4,5]