将值分配给列表列表

时间:2019-01-20 04:59:32

标签: python python-3.x list

g是列表列表,我将其用作2d数组。 但是,当我为g [i] [j]赋值时,它不起作用。

这是我的代码。

m=3
n=4 
g=[[0]*n]*m
for i in range(m):
    for j in range(n):
        g[i][j]=i
        print(g[i][j])

print(g)

输出为

0
0
0
0
1
1
1
1
2
2
2
2
[[2, 2, 2, 2], [2, 2, 2, 2], [2, 2, 2, 2]]

1 个答案:

答案 0 :(得分:1)

g=[[0]*n]*m

是问题所在。尝试以下方法:

g=[[0]*n for _ in range(m)]

这两种方法之间的区别在于,前者是m个项目的列表,每个都是n零的 same 列表。但是后者是m个项目的列表,每个项目都是n零的不同列表。