gpt4 book ai didi

python - 如何修改这个 python for 循环?

转载 作者:行者123 更新时间:2023-11-28 19:40:24 24 4
gpt4 key购买 nike

我在 python 中的 for 循环中有奇怪的行为。问题不完全是这个问题,但非常类似于:

a = []
b = [1,2,3,4]
for i in xrange (0,10):
a.append(b)
b[3] += 1

结果是:

a = [[1,2,3,14],[1,2,3,14],[1,2,3,14],[1,2,3,14],[1,2,3,14],[1,2,3,14],[1,2,3,14],[1,2,3,14],[1,2,3,14],[1,2,3,14]]

我期待的结果是

a =  [[1,2,3,4],[1,2,3,5],[1,2,3,6],[1,2,3,7],.....,[1,2,3,14]]

我不知道为什么在每次迭代时,b[3] 被添加到 14 然后列表 [1,2,3,14] 被添加到 a。我认为 b[3] 应该在每次迭代时只增加 1

最佳答案

您的问题是每次迭代您都将引用附加到同一个数组,并不断更改它。

最简单的修复是将附加更改为

 a.append(list(b))

这将使每次迭代都将(浅)副本附加到目标数组,而不是引用。

关于python - 如何修改这个 python for 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11118295/

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