无法更改立方矩阵中的元素值

cant change elements value in cubic matrix

我有一个矩阵

Matrix = [[[]] * 5 for i in range(5)]

我正在尝试使用以下代码更改内部元素,但不知为何它更改了整行:

Matrix[0][1].append(1)

输出:

[[[1], [1], [1], [1], [1]], [[], [], [], [], []], [[], [], [], [], []], [[], [], [], [], []], [[], [], [], [], []]]

但我希望它像这样工作:

[[[], [1], [], [], []], [[], [], [], [], []], [[], [], [], [], []], [[], [], [], [], []], [[], [], [], [], []]]

您想在列表列表的内部和外部使用循环以避免创建副本。

Matrix = [[[] for _ in range(5)] for i in range(5)]

print(Matrix)
[[[], [1], [], [], []], [[], [], [], [], []], [[], [], [], [], []], [[], [], [], [], []], [[], [], [], [], []]]