list.append(variable)不会附加但替换列表

时间:2015-10-22 20:24:16

标签: python list function append

我创建了一个创建空列表的函数,并将另一个列表中的值赋给变量。然后,每次调用函数时,代码都应该将变量的值附加到列表中。但该函数不会附加,而是替换列表中的元素。我可以告诉这个,因为当我打印列表时,前一个元素丢失了。代码如下。我需要这个进行模拟检查。有什么想法吗?

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

2 个答案:

答案 0 :(得分:5)

这不是正在做的追加,而是你之前明确地将现有变量替换为两行。

正如CactusWoman指出的那样,你根本不需要全局变量。 tracker是一个纯粹的局部变量;至于trackerresult,一旦你摆脱了作业,你只会改变它,所以没有必要将它声明为全局。

答案 1 :(得分:0)

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