初始化方法
- 直接定义
matrix = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
- 间接定义
matrix = [[0 for i in range(3)] for i in range(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 就被改了,然后三个元素全改了。
网友评论