python - 使用 multiply 创建包含列表的列表

标签 python list

>>> a = []
>>> b = [a*2]
>>> b
[[]]
>>> b = [copy.deepcopy(a)*2]
>>> b
[[]]

我正在尝试将 b 创建为由 a 的两个副本组成的列表。为什么 b 不是 [[],[]]?我怎样才能使 b[[],[]]

最佳答案

如果你想用 a 创建 b 两次:

a = []
b = [a] * 2

但请注意,列表是 mutable !

b[1].append('foo')
b
[['foo'], ['foo']]

如果你想用a的两个副本创建b:

b = [a[:] for i in range(2)]

为了更好地控制副本的性质(相对于绑定(bind)),请阅读 python copy模块文档。

关于python - 使用 multiply 创建包含列表的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21919281/

相关文章:

python - 逗号分隔的字符串到 Python 2 中的变量

Python 发布请求更改日期

PYTHON - 不可哈希列表

list - Groovy 压缩列表或按级别展平

java - java中如何根据id将一个列表分成3个列表

python - 导入 "google.oauth2.credentials"无法解析 Visual Studio Code

python - 使用 tkinter 输入一个变量,被调用

python - Django 模板 - 列表迭代

c# - 创建一个算法以根据项目类型交替列表项目

Python - Neaten 这个追加/扩展条件