首页 > 解决方案 > 二维列表仅保留传递给它的最后一个值

问题描述

我正在用 python 尝试一些东西,我有一个 2d 列表,我正在使用另一个列表填充。一切正常,但是当我打印出我填充的列表的内容时,它只打印出我从中复制的列表的最后一行。

a= [[1, 1], [2,2], [3, 3]]

b= [[0]*len(a[0])]*len(a)

#copying
for i in range(0,len(a)):
  for j in range(0,len(a[0])): 
    b[i][j] = a[i][j]

#printing
for i in range(0,len(b)):
  for j in range(0,len(b[0])):  
    print(b[i][j])

预期输出:

1 
1
2 
2
3
3

实际输出:

3 
3 
3 
3
3
3

我最初认为这是一个范围问题,但在这种情况下,我的输出不应该只是 0 吗?我不确定如何解决这个问题。

标签: python

解决方案


推荐阅读