Python append(变量)不追加,而是替换列表

Python append(变量)不追加,而是替换列表,python,list,function,append,Python,List,Function,Append,我创建了一个函数,它创建了一个空列表,并将另一个列表中的值分配给一个变量。然后,每次调用函数时,代码都应该将变量的值附加到列表中。但是函数不追加,而是替换列表中的元素。我可以这样说,因为当我打印列表时,前面的元素丢失了。代码如下。我需要这个做模拟考试。有什么想法吗 def track(): global tracker global trackerresult trackerresult = [] tracker = opposite1[decider]

我创建了一个函数,它创建了一个空列表,并将另一个列表中的值分配给一个变量。然后,每次调用函数时,代码都应该将变量的值附加到列表中。但是函数不追加,而是替换列表中的元素。我可以这样说,因为当我打印列表时,前面的元素丢失了。代码如下。我需要这个做模拟考试。有什么想法吗

def track():
    global tracker
    global trackerresult
    trackerresult = []
    tracker = opposite1[decider]
    trackerresult.append(tracker)
    print(trackerresult)

并不是append在做这件事,而是在前面两行显式替换现有变量


正如仙人掌女人所指出的,你根本不需要地球仪。跟踪器是一个纯局部变量;至于trackerresult,一旦你摆脱了赋值,你只会对它进行变异,因此没有必要将它声明为全局变量。

这不是附加,而是你在前面两行显式替换了现有变量


正如仙人掌女人所指出的,你根本不需要地球仪。跟踪器是一个纯局部变量;至于trackerresult,一旦你摆脱了赋值,你只会对它进行变异,因此没有必要将它声明为全局的。

每次运行track函数时,它都会重置值
trackerresult返回空列表。如果没有显式清空列表,而是在函数定义之前执行一次trackerresult=[],则该函数将起作用。

每次运行track函数时,它都会重置该值
trackerresult返回空列表。如果您没有显式清空列表,而是在函数定义之前执行一次trackerresult=[],那么它会工作。

将trackerresult=[]放在函数之外,它应该会工作。也许可以重新考虑是否需要函数外部的全局变量sput trackerresult=[],它应该可以工作。也许重新考虑一下是否需要全局变量?您确实需要更好地理解代码的作用。随机添加全局变量可能会解决一个问题,但可能会导致其他更难发现的问题。在这种情况下,听起来你需要一门课。有道理。我没想到。非常感谢!倾向于?您确实需要更好地理解代码的作用。随机添加全局变量可能会解决一个问题,但可能会导致其他更难发现的问题。在这种情况下,听起来你需要一门课。有道理。我没想到。非常感谢!