gpt4 book ai didi

python - 在函数中编辑列表是如何工作的

转载 作者:行者123 更新时间:2023-11-30 23:31:24 26 4
gpt4 key购买 nike

我无法理解列表:

mList = []
def func1(mList):
mList.append("1")
return
func1()
print mList

据我了解,因为列表是可变的,如果我在函数中编辑它,主列表也会被编辑。在我正在处理的一个程序中,这种情况发生在我用作“保存文件”的一个列表上,但是,我用作“value_blacklist”的第二个列表在编辑/添加后不会被保存。

我包含了我遇到问题的实际代码的问题部分(如果有任何帮助的话)。

def func04(feedback, test_list, value_blacklist, upper_limit=6):
if value_blacklist == []:
value_blacklist = blacklist_gen(length)
import random
new_list = []
for index in list(range(0, len(feedback))):
if feedback[index] == 0: #This value is correct, leave it
new_list.append(test_list[index])
elif feedback[index] == 2:
value_blacklist = full_blacklist(test_list[index], value_blacklist)
new_list.append(0)
elif feedback[index] == 1:
value_blacklist[index].append(test_list[index])
new_list.append(0)
for index in list(range(0, len(feedback))):
if new_list[index] == 0:
new_list[index] = pick_new(index, value_blacklist, upper_limit)
return new_list

next_guess = lambda: func04(feedback(), save_game[-1], value_blacklist, save_game[0])

感谢您的帮助,我对此感到非常困惑。

最佳答案

无论你在哪里

value_blacklist = ...

您正在重新绑定(bind) value_blacklist 到一个新的(列表)对象。如果你说

value_blacklist[:] = ...

您将替换列表的内容而不重新绑定(bind)它。

问很多问题,直到你真正理解这一点。 “得到”它非常重要。

关于python - 在函数中编辑列表是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19967680/

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