python - 二维列表仅保留传递给它的最后一个值
问题描述
我正在用 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 吗?我不确定如何解决这个问题。
解决方案
推荐阅读
- go - go微服务中如何给每个日志添加trace id
- google-analytics - GA eCommerce 删除或更新跟踪数据
- filepond - 水平而不是垂直显示
- sqlite - 插入sqlite颤振而不冻结界面
- javascript - 如何在 XML 中查找和替换文本并避免某些文本
- python - 方法和函数之间的python关系
- typescript - 无法以 ElementArrayFinder 作为参数来解决承诺
- middleman - Netlify CMS 使用中间人嵌套 YAML
- visual-c++ - 如何将 OCX 绘制到 CBitmap (MFC, c++)
- go - Go 同步和并发模型