无法创建给定大小的必需列表

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)