我创建了一个创建空列表的函数,并将另一个列表中的值赋给变量。然后,每次调用函数时,代码都应该将变量的值附加到列表中。但该函数不会附加,而是替换列表中的元素。我可以告诉这个,因为当我打印列表时,前一个元素丢失了。代码如下。我需要这个进行模拟检查。有什么想法吗?
def track():
global tracker
global trackerresult
trackerresult = []
tracker = opposite1[decider]
trackerresult.append(tracker)
print(trackerresult)
答案 0 :(得分:5)
这不是正在做的追加,而是你之前明确地将现有变量替换为两行。
正如CactusWoman指出的那样,你根本不需要全局变量。 tracker
是一个纯粹的局部变量;至于trackerresult
,一旦你摆脱了作业,你只会改变它,所以没有必要将它声明为全局。
答案 1 :(得分:0)
每次运行track
函数时,都会重置该值
trackerresult
到空列表。如果您没有显式清空列表,而是在函数定义之前执行trackerresult=[]
一次,那么它将起作用。