繁体   English   中英

在Python中解压* args的顺序

[英]order of unpacking *args in Python

我不知道为什么当我做时变量last5

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

我以为赋值从左到右,因此*rest将是[2,3,4,5] ,但实际上是[2,3,4]并且我以为last将为空,否则此代码将导致错误,但令人惊讶的是它有效,但是我不明白为什么

这是仅在Python 3中有效的语法,称为“扩展解压缩”,并且在PEP 3132中定义-https: //www.python.org/dev/peps/pep-3132/

只是因为它具有拆包功能。

*rest是参数时, firstlast只是变量,因此它们获得元组(1,2,3,4,5)中firstlast值之间的所有值。

如果您想写:

[2,3,4,5]

然后只需使用:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM