清空列表
我觉得不能清空一个列表真让人烦。在这个例子中:
a = []
a.append(1)
a.append(2)
a = []
当我第二次把变量a初始化为一个空列表时,它实际上是创建了一个新的列表实例,这个新列表在内存中的位置和第一个列表不同,所以我不能用它来引用第一个列表,更别提这样做效率低下了。
我能想到的保持同一个指针的方法是这样做:
for i in range(len(a)):
a.pop()
不过这样做似乎有点繁琐,有没有更好的解决办法呢?
3 个回答
1
这可能对你有帮助::)
L[:] = []
4
我不太明白你为什么会担心你在内存中引用了一个新的、空的列表,而不是同一个“指针”。
你另外那个列表迟早会被清理掉,而在高级语言中,垃圾回收的机制让你通常不需要担心这些问题。
27
你正在寻找:
del L[:]