清除清单

时间:2020-03-06 15:04:13  来源:igfitidea点击:

我无法清除列表,这很烦人。在此示例中:

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

a = []

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

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

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

不过,这似乎很漫长,是否有更好的方法可以解决此问题?

解决方案

我们正在寻找:

del L[:]

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

其他列表迟早会被收集,而使用高级垃圾收集语言的最大好处之一就是我们通常不需要担心诸如此类的事情。