转载:python中二维数组的初始化

借鉴原文链接的内容:

方法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