>>> 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/