繁体   English   中英

我该怎么解压序列?

[英]How can I unpack sequence?

为什么我不能这样做:

d = [x for x in range(7)] 
a, b, c, d, e, f, g = *d

哪里可以打开包装? 只在函数的括号之间?

您正在以错误的方式使用Extended Iterable Unpacking

d = [x for x in range(7)]  
a, b, c, d, e, f, g = d
print(a, b, c, d, e, f, g)

哪里可以打开包装? 只在函数的括号之间?

没有,

*建议更改可迭代解包语法,允许指定“全部捕获”名称,该名称将分配一个未分配给“常规”名称的所有项目的列表。

你可以尝试这样的事情:

a, *params = d
print(params)

产量

[1, 2, 3, 4, 5, 6]

通常,当您需要将参数传递给函数时,会使用*扩展可迭代解包 )运算符。

注意

Javascript等效的Extended Iterable Unpacking operator称为扩展语法

 d = [...Array(7).keys()] console.log(d) var [a, ...b] = d console.log(a,b) 

你也可以用这个:

>>> a,b,c,d,e,f,g = range(7)
>>> a
0
>>> b
1
>>> c
2

你似乎不需要*

>>> z = [x for x in range(7)]
>>> a,b,c,d,e,f,g = z
>>> a
0
>>> b
1
>>> c
2
>>> 

(我用过z而不是两次。)

暂无
暂无

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

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