python - 为什么 python 2d 列表彼此共享它们的元素?
问题描述
当我运行这个:
l = [0] * 5
l[0] = 1
l[1] = 2
print(l)
我明白了[1, 2, 0, 0, 0]
。
但是当我运行这个时:
l = [[]] * 5
l[0].append(1)
l[1].append(2)
print(l)
然后我明白了[[1, 2], [1, 2], [1, 2], [1, 2], [1, 2]]
。
我预计[[1], [2], [], [], []]
。和
有什么区别?
为什么这些列表彼此共享它们的元素?
另外,我怎样才能制作没有元素共享列表的二维列表比这更简短?[k]*n
[[]]*n
l = []
for i in range(5):
l.append([])
l[0].append(1)
l[1].append(2)
print(l)
它给[[1], [2], [], [], []]
.
谢谢你。
解决方案
推荐阅读
- sql-server - 使用存储过程和 VBA 在 SQL Server 中发送 Excel 表
- android - 如何访问 Kotlin 上其他类的函数?
- git - 关于“git rebase master”步骤、github以及提交移至何处的问题
- arduino - Arduino UNO 作为套接字客户端 - Lan 好的,Wan 不是
- r - 寻找非标准正态分布的概率
- javascript - three.js clone() 我所有网格的属性更改
- android - 在 Android 手机上打开 ar.js 示例时出现问题
- java - OnCheckChangeListener 在自定义适配器中不起作用
- r - 删除 R markdown knit 中的类
- numpy - 向量化多元正态 pdf python (PyTorch/NumPy)