Python解压缩不起作用
a = [1,2,3,4]
*m = a; //error
b,*m = a
print(m) //working
请解释为什么前一个不起作用。
答案 0 :(得分:4)
每个PEP-3132(引入了这种“扩展的可迭代拆包” 语法)和language reference(已加星标的目标)仅在目标为一个可迭代的。
使用加星号的表达式作为单独的任务也是错误的 目标,如
*a = range(5)
但是,这是有效的语法:
*a, = range(5)
因此,要使其在语法上有效,您可以这样做:
*m, = a
甚至:
[*m] = a
但是请注意,创建列表的浅表副本的惯用方式是使用切片:
m = a[:]