gpt4 book ai didi

python - 将列表 append 到列表以创建列表列表会在想要使用列表列表的索引 : python 更改值时出现问题

转载 作者:太空宇宙 更新时间:2023-11-04 09:17:47 27 4
gpt4 key购买 nike

基本上,当通过使用 list.append() 将一个列表 append 到另一个列表来制作列表列表时,似乎存在问题。问题是整个列都更改为您为给定的索引设置的值。例如这里的代码

b = [1,1,1]
c = []
c.append(b)
c.append(b)
c.append(b)
c[0][0] = 4

如果你打印 c 你会得到:[[4,1,1][4,1,1][4,1,1]]代替[[4,1,1][1,1,1][1,1,1]]

所以我的问题是您如何才能得到右侧的列表而不是实际发生的情况。

最佳答案

您观察到的是 Python 中的正常行为和预期行为,任何体面的教程都应该涵盖它。

c.append(b)
c.append(b)
c.append(b)

这向 c append 了三个对列表 b 的引用。因为它是同一个列表,所以更改一个引用会在它引用的所有四个地方更改它,顺便说一下,包括 b

如果您不希望出现这种情况,请复制列表。

c.append(b[:])
c.append(b[:])
c.append(b[:])

关于python - 将列表 append 到列表以创建列表列表会在想要使用列表列表的索引 : python 更改值时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6785198/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com