无法创建给定大小的必需列表
Unable to create a required list of a given size
a=[[None]*3]
a=a*3
k=0
for i in range(3):
for j in range(3):
a[i][j]=k
print(a)
k=k+1
print(a)
I want the output to be [[0,1,2],[3,4,5],[6,7,8]]. What I am getting
is [[6,7,8],[6,7,8],[6,7,8]]
您需要复制 a
中的每个列表,因为当使用多个列表时,它会创建每个列表的副本并引用同一个列表,因此您将获得 3 个相同的列表,其中只有最后一个迭代值是在里面。
a=[[],[],[]]
a=[a[:], a[:], a[:]]
k=0
for i in range(3):
for j in range(3):
a[i][j]=k
k+=1
print(a)
输出
[[0, 1, 2], [3, 4, 5], [6, 7, 8]]
错误是影响每个列表元素的变量的引用更改。
使用以下方法。
n,m = 3, 3
a = [[0] * m for i in range(n)]
k=0
for i in range(3):
for j in range(3):
a[i][j]=k
k=k+1
print(a)
a=[[None]*3]
a=a*3
k=0
for i in range(3):
for j in range(3):
a[i][j]=k
print(a)
k=k+1
print(a)
I want the output to be [[0,1,2],[3,4,5],[6,7,8]]. What I am getting is [[6,7,8],[6,7,8],[6,7,8]]
您需要复制 a
中的每个列表,因为当使用多个列表时,它会创建每个列表的副本并引用同一个列表,因此您将获得 3 个相同的列表,其中只有最后一个迭代值是在里面。
a=[[],[],[]]
a=[a[:], a[:], a[:]]
k=0
for i in range(3):
for j in range(3):
a[i][j]=k
k+=1
print(a)
输出
[[0, 1, 2], [3, 4, 5], [6, 7, 8]]
错误是影响每个列表元素的变量的引用更改。 使用以下方法。
n,m = 3, 3
a = [[0] * m for i in range(n)]
k=0
for i in range(3):
for j in range(3):
a[i][j]=k
k=k+1
print(a)