python - 将元素附加到列表列表中会覆盖整个列表
问题描述
代码如下所示:
s = [[]] *4
s[0].append(1)
print(s)
它给了我输出:
[[1],[1],[1],[1]]
但我想要这样的输出:
[[1],[],[],[],[]]
我怎样才能做到这一点?
解决方案
您不能使用[[]] * 4
创建四个列表。在这种情况下,您只是创建一个列表和四个指向它的引用。
所以你应该使用[[] for _ in range(4)]
.
推荐阅读
- spring - Mongodb 更新最新记录而不是创建新记录
- ffmpeg - 多个图像的叠加命令问题
- html - 如何使用 bootsrap 将 div 放在表单右上角之外?
- c# - 从父游戏对象中找到所有子游戏对象并将其分配给一个var gameObject?
- scala - 如何派生作用于特定子类型的 HList 的无形操作
- python - 有没有一种好方法可以在许多条件下对 dask 数据帧进行条件选择?
- sequelize.js - Sequelize 在重复键上插入无错误
- batch-file - 在命令行程序中回答问题
- javascript - Cordova iOS 关于当前位置的通知
- ignite - 具有多个引用键时的并置数据