gpt4 book ai didi

Python append 函数无法按预期工作

转载 作者:行者123 更新时间:2023-12-04 09:43:29 26 4
gpt4 key购买 nike

我正在尝试使用 append 函数将列表附加到列表中。请参阅下面的代码 - temp 将是一个动态创建的临时列表。我想将 temp 附加到 list1。

temp = []
list1 = []
for num in range(0,2):
temp.clear()
temp.append(num)
list1.append(temp)
print(list1)

list1 中的预期输出是 [[0],[1]]。但是我得到 [[1],[1]]。
有人可以解释这背后的原因。 Append 应该在不更改列表的情况下附加到列表。

最佳答案

由于您已经附加了整个 temp列表,然后 list1包含对该列表的引用。所以当你修改temptemp.clear()temp.append(num) ,然后 list1 也被修改。如果您不希望发生这种情况,则需要附加一个副本:

import copy
temp = []
list1 = []
for num in range(0,2):
temp.clear()
temp.append(num)
list1.append(copy.copy(temp))
print(list1)
> [[0]]
> [[0], [1]]

获得所需结果的另一种方法是使用 temp = []而不是 temp.clear() .这将使 temp指向内存中的一个新对象,留下在 list1 中引用的对象不变。两者都有效!

关于Python append 函数无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62226594/

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