l = [[-1]*3 for i in range(3)]
l[1].append(3)
print(l)
#输出:
[[-1, -1, -1], [-1, -1, -1, 3], [-1, -1, -1]]
一个坑:
l = [[-1]*3]*4
l[1].append(3)
print(l)
输出:
[[-1, -1, -1, 3], [-1, -1, -1, 3], [-1, -1, -1, 3], [-1, -1, -1, 3]]
因为这种形式是一种浅拷贝。
本文主要探讨Python中如何创建二维数组,重点解析由于浅拷贝带来的潜在问题及其解决方案。
l = [[-1]*3 for i in range(3)]
l[1].append(3)
print(l)
#输出:
[[-1, -1, -1], [-1, -1, -1, 3], [-1, -1, -1]]
一个坑:
l = [[-1]*3]*4
l[1].append(3)
print(l)
输出:
[[-1, -1, -1, 3], [-1, -1, -1, 3], [-1, -1, -1, 3], [-1, -1, -1, 3]]
因为这种形式是一种浅拷贝。
1万+
6424

被折叠的 条评论
为什么被折叠?