在Python中解压缩* args的顺序

时间:2016-08-25 09:47:07

标签: python python-3.x args

我想知道为什么变量last5 当我做的时候

first, *rest, last = 1,2,3,4,5

我认为任务从左到右,因此 *rest[2,3,4,5],但实际上是[2,3,4] 我认为最后会是空的,或者这段代码会导致错误,但令人惊讶的是它有效,但我不明白为什么

2 个答案:

答案 0 :(得分:4)

这是仅在Python 3中有效的语法,被称为"扩展解包"它在PEP 3132中定义 - https://www.python.org/dev/peps/pep-3132/

答案 1 :(得分:0)

仅仅因为它的解包功能。

first是参数时,

last*rest只是变量,因此它们可以获取元组中firstlast之间的所有值(1,2) ,3,4,5)。

如果你想写信:

[2,3,4,5]

然后使用:

first, *args = 1,2,3,4,5
# first --> 1
# args --> [2,3,4,5]