为什么数组中的输入会覆盖每个数组的值

2024-04-26 23:46:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这段代码

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)

它应该只在被请求时添加数字,但由于某些原因,它会填充所有行中的数字


Tags: 代码inforinputdatadtrange原因
1条回答
网友
1楼 · 发布于 2024-04-26 23:46:38

您刚刚用a=x*[x*[0]]创建了3行具有相同引用的行x*[0]构建一次,并通过外部乘法运算符在所有行上传播

更改一行将更改所有行。注意,它可能有用(但不是很明显)

改为这样做(使用列表理解):

a=[x*[0] for _ in range(x)]

所以每行的引用是分开的

相关问题 更多 >