相关疑难解决方法(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万
查看次数

附加到Python中的2D列表

我遇到了我认为Python中的一个奇怪的行为,我希望有人在可能的情况下解释它.

我创建了一个空的2D列表

listy = [[]]*3

print listy

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

以下工作正如我所料:

listy[1] = [1,2] 产量 [[], [1,2], []]

listy[1].append(3) 产量 [[], [1,2,3], []]

但是,当我附加到其中一个空列表时,python会附加到所有子列表,如下所示:

listy[2].append(1)收益率[[1], [1,2,3], [1]].

谁能向我解释为什么会出现这种情况?

python list

31
推荐指数
2
解决办法
9万
查看次数

python list comprehension:创建2d数组

可能重复:
Python 2D列表在尝试修改单个值时具有奇怪的行为

乡亲,

我想知道以下两个陈述是否相同?

a = [[0]*3]*3
b = [[0]*3 for i in range(3)]
Run Code Online (Sandbox Code Playgroud)

结果看起来一样.但是一种方式会比另一种更好吗?这有什么区别.

非常感谢您的帮助.

python list-comprehension

9
推荐指数
2
解决办法
7333
查看次数

标签 统计

python ×3

list ×2

list-comprehension ×1

mutable ×1

nested-lists ×1