我正在输入一个二维矩阵,我试图在开始和结束时为每一列和每行添加3个零。
arr2d = [[j for j in input().split(' ')] for i in range(20)]
arr1d = [0]*len(arr2d)
array = []
for j in range(3):
arr2d.insert(0,arr1d)
arr2d.insert(len(arr2d),arr1d)
for k in range(len(arr2d)):
for i in range(3):
arr2d[k].append(0)
arr2d[k].insert(0,0)
我的意见是这个。
但我获得了以下输出。
答案 0 :(得分:0)
执行arr2d.insert(0,arr1d)
时,您未插入arr1d
的副本;您正在插入arr1d
本身。稍后当您使用arr2d[k].append(0)
执行k = 0
之类的操作时,由于arr2d[0]
为arr1d
,因此您正在修改arr1d
(也是{{} 1}}以及arr2d[1]
等等。因此,添加到第一行和最后三行的前面或后面的任何零都将被添加到所有中。
这是一个更简单的例子来说明究竟发生了什么:
arr2d[2]