BUG | Python多维列表赋值时重复赋值
当采用如下方式创建多维list时:
a = [[0.] * 5] * 5
print(a)
a[0][0] = 1.
print(a)
如果尝试给其中一个元素赋值时,会发现整个列表的第一列均被赋值
这种情况的原因是创建列表时第2,3,4,5⾏其实是第⼀⾏的⼀个浅拷贝
,它们的地址是⼀样的,给任意⼀个赋值其余的也会被赋值。
解决⽅法是使⽤如下⽅法建⽴⼆维列表:
a = [[0.] * 5 for i in range(5)]
print(a)
a[0][0] = 1.
print(a)
赋值结果: