【发布时间】:2020-12-20 12:42:53
【问题描述】:
我需要输入二维数组并对其进行更改,但答案总是错误的。这是我的代码。
r,c,obs = map(int, input().split())
k = []
h = []
for i in range(r):
for j in range(c):
k.append(0)
h.append(k)
for i in range(r):
for j in range(c):
print(h[i][j],end=" ")
print()
while obs > 0:
l, k = map(int, input().split())
h[l-1][k-1] = 1
obs -= 1
for i in range(r):
for j in range(c):
print(h[i][j],end=" ")
print()
我的输入是这样的 -
5 4 4
3 2
3 4
4 2
5 2
根据代码,我的结果矩阵应该是这样的 -
0 1 0 0
0 1 0 0
0 1 0 1
0 0 0 0
0 0 0 0
但它总是导致这个 -
0 1 0 1
0 1 0 1
0 1 0 1
0 1 0 1
0 1 0 1
谁能告诉我这里出了什么问题??
【问题讨论】:
-
h.append(k)重复地将 referrnces 附加到h的同一个数组,而不是独立的数组。 -
提示:
h[0] == h[1]和h[0] is h[1]
标签: python arrays python-3.x list