清除列表

时间:2008-10-03 11:37:23

标签: python memory-management refactoring list

我觉得很烦人,我无法清除列表。在这个例子中:

a = []
a.append(1)
a.append(2)

a = []

第二次将a初始化为空白列表时,它会创建一个列表的新实例,该列表位于内存中的不同位置,因此我无法使用它来引用第一个,更不用说它效率低下了。

我能看到保留相同指针的唯一方法是执行以下操作:

for i in range(len(a)):
    a.pop()

这看起来很啰嗦,有没有更好的方法来解决这个问题?

3 个答案:

答案 0 :(得分:27)

您正在寻找:

del L[:]

答案 1 :(得分:4)

我不确定为什么你担心你在内存中引用一个新的空列表而不是相同的“指针”。

您的其他列表迟早会被收集,并且有关使用垃圾收集的高级语言工作的一大好处是您通常不需要担心这样的事情。

答案 2 :(得分:1)

这可以帮助您::)

L[:] = []