二维数组

如果我想定义一个二维数组

array = [0, 0, 0]
matrix = [array*3]
>>> matrix
[[0, 0, 0, 0, 0, 0, 0, 0, 0]]
array = [0, 0, 0]
matrix = [array] * 3
>>> matrix
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
matrix[0][1] = 1
>>> matrix
[[0, 1, 0], [0, 1, 0], [0, 1, 0]]

实际上就是深复制和浅复制的区别,初始化序列的时候用 * 实际上就是一个浅复制的过程

如何在 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)]

一个更好的方法是 使用 NumPy

matrix = np.zeros((3, 3))