拆箱清单并将其分配给变量

时间:2019-12-20 04:14:16

标签: python

对于此代码,

a=[1,2,3,4,5]
print(*a)

我会得到输出 1 2 3 4 5随清单a一起打开。

  

但是如果我想将*a分配给变量x然后打印怎么办?

a=[1,2,3,4,5]
x=*a
print(x)

如何获得与上述代码相同的输出?

1 个答案:

答案 0 :(得分:7)

要从print获得相同的输出,请写x = ' '.join(str(s) for s in a)。但是,这不是解包,在这里无法使用解包来实现相同的结果。

解包运算符*只能出现在函数参数或分配目标的上下文中。您的原始示例对print函数的参数使用了拆包。使用拆包的另一种方法是在解构分配中,在这种情况下,它将创建一个列表。例如:

>>> first, *rest = [1, 2, 3, 4, 5]
>>> first
1
>>> rest
[2, 3, 4, 5]