借鉴原文链接的内容:
方法1 直接定义
matrix = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
方法2 间接定义
matrix = [[0 for i in range(3)] for i in range(3)]
方法3
matrix = []
for i in range(3):
matrix.append([0] * 3)
可以解决浅拷贝的问题
引发浅拷贝的现象(注意:以下行为会使列表产生奇怪的特性)
base = [0] * 3
matrix = []
for i in range(3):
matrix.append(base)
print(matrix)
matrix[1][1] = 2
print(matrix)
结果:
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
[[0, 2, 0], [0, 2, 0], [0, 2, 0]]
说明matrix中三个[0, 0, 0]都是base的映射,改一个,base就被改了,然后三个元素全改了。
————————————————
版权声明:本文为CSDN博主「tellw0.0」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/z1314520cz/article/details/85162183