相关疑难解决方法(0)

列表更改意外地反映在子列表中

我需要在Python中创建一个列表列表,所以我输入以下内容:

myList = [[1] * 4] * 3
Run Code Online (Sandbox Code Playgroud)

列表看起来像这样:

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

然后我改变了最里面的一个值:

myList[0][0] = 5
Run Code Online (Sandbox Code Playgroud)

现在我的列表看起来像这样:

[[5, 1, 1, 1], [5, 1, 1, 1], [5, 1, 1, 1]]  
Run Code Online (Sandbox Code Playgroud)

这不是我想要或期望的.有人可以解释一下发生了什么,以及如何解决这个问题?

python list mutable nested-lists

576
推荐指数
10
解决办法
3万
查看次数

更改一个列表中的元素会更改多个列表

我有一份清单说mysolution:

>>>mySolution
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
>>> mySolution[0][0] = 1    
>>> mySolution
[[1, 0, 0, 0], [1, 0, 0, 0], [1, 0, 0, 0], [1, 0, 0, 0]]
Run Code Online (Sandbox Code Playgroud)

预期产量:

[[1, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
Run Code Online (Sandbox Code Playgroud)

为什么我的列表列表中的所有第一个元素都被更改为1?我只想将第一个列表的第一个元素更改为1.

python list python-2.7

13
推荐指数
2
解决办法
8616
查看次数

python将值附加到子列表

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

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

python list append

10
推荐指数
1
解决办法
6784
查看次数

标签 统计

list ×3

python ×3

append ×1

mutable ×1

nested-lists ×1

python-2.7 ×1