python将值附加到子列表

use*_*857 10 python list append

我在我的程序中遇到了问题而且我不确定我做错了什么.首先,我创建了一个空的列表列表.例如:

>>> Lists = [[]]*12
Run Code Online (Sandbox Code Playgroud)

这使:

>>> Lists
[[], [], [], [], [], [], [], [], [], [], [], []]
Run Code Online (Sandbox Code Playgroud)

但是,在尝试将值附加到单个子列表时,它会将值添加到所有子列表.例如:

>>> Lists[2].append(1)
Run Code Online (Sandbox Code Playgroud)

得到:

>>> Lists
[[1], [1], [1], [1], [1], [1], [1], [1], [1], [1], [1], [1]]
Run Code Online (Sandbox Code Playgroud)

有没有办法只附加到一个子列表,以便结果如下所示:

>>> Lists
    [[], [], [1], [], [], [], [], [], [], [], [], []]
Run Code Online (Sandbox Code Playgroud)

Ble*_*der 19

列表对象是可变的,因此您实际上创建了一个列表,其中包含对一个列表的12个引用.使用列表理解并制作12个不同的列表:

Lists = [[] for i in range(12)]
Run Code Online (Sandbox Code Playgroud)

对不起,我找不到这个确切问题的原始副本