2024-04-26 23:46:38 发布
网友
我有这段代码
x=3 a=x*[x*[0]] for i in range(0,x): for j in range(0,x): dt=int(input("insert data: ")) a[i][j]=dt print(a)
它应该只在被请求时添加数字,但由于某些原因,它会填充所有行中的数字
您刚刚用a=x*[x*[0]]创建了3行具有相同引用的行x*[0]构建一次,并通过外部乘法运算符在所有行上传播
a=x*[x*[0]]
x*[0]
更改一行将更改所有行。注意,它可能有用(但不是很明显)
改为这样做(使用列表理解):
a=[x*[0] for _ in range(x)]
所以每行的引用是分开的
您刚刚用
a=x*[x*[0]]
创建了3行具有相同引用的行x*[0]
构建一次,并通过外部乘法运算符在所有行上传播更改一行将更改所有行。注意,它可能有用(但不是很明显)
改为这样做(使用列表理解):
所以每行的引用是分开的
相关问题 更多 >
编程相关推荐