对于此代码,
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)
如何获得与上述代码相同的输出?
答案 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]