Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中*参数的解包顺序_Python_Python 3.x_Args - Fatal编程技术网

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]