可能重复:
如何在 Python 中初始化二维数组?
在解决一个关于二维数组的简单问题时,我在这个站点上遇到了一个解决方案,该解决方案解释了如何使用重载运算符在 Python 中声明一个。
例子:
Myarray = [[0]*3]*3
这将产生以下数组(列表)
[[0,0,0],[0,0,0],[0,0,0]]
在您使用它之前,这似乎很好:
例如,如果您分配一个元素:
Myarray [0][0] = 1
你会得到意想不到的输出:
[[1,0, 0],[1,0,0] , [1,0,0]]
实际上同时分配 Myarray [1][0] 和 Myarray[2][0]
我的解决方案:
Myarray = [[][][]]
for i in range(0,3):
for j in range (0,3):
Myarray[i].append(0)
此解决方案按预期工作:
Marray[0][1] = 1
给你
[[1,0, 0],[0,0,0] , [0,0,0]]
有没有更简单的方法来做到这一点?这是一个 A 级剑桥问题的解决方案,与其他语言相比,对学生来说似乎太啰嗦了。