Python解包不起作用

a = [1,2,3,4]
*m = a; //error

b,*m = a
print(m) //working

请解释为什么前一个不起作用。

最佳答案

根据 PEP-3132 ,它引入了这种“扩展的可迭代解包”语法,以及 language reference ,“加星标”目标仅在目标是可迭代的赋值中有效。



因此,要使其在语法上有效,您可以执行以下操作:

*m, = a

甚至:
[*m] = a

但是请注意,创建列表浅拷贝的惯用方法是使用切片:
m = a[:]

关于python - 不明白为什么解包没有按预期工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55322570/

10-12 21:33