我想知道为什么变量last
是5
当我做的时候
first, *rest, last = 1,2,3,4,5
我认为任务从左到右,因此
*rest
将[2,3,4,5]
,但实际上是[2,3,4]
我认为最后会是空的,或者这段代码会导致错误,但令人惊讶的是它有效,但我不明白为什么
答案 0 :(得分:4)
这是仅在Python 3中有效的语法,被称为"扩展解包"它在PEP 3132中定义 - https://www.python.org/dev/peps/pep-3132/
答案 1 :(得分:0)
仅仅因为它的解包功能。
当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]