清空列表

8 投票
3 回答
539 浏览
提问于 2025-04-11 09:25

我觉得不能清空一个列表真让人烦。在这个例子中:

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

a = []

当我第二次把变量a初始化为一个空列表时,它实际上是创建了一个新的列表实例,这个新列表在内存中的位置和第一个列表不同,所以我不能用它来引用第一个列表,更别提这样做效率低下了。

我能想到的保持同一个指针的方法是这样做:

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

不过这样做似乎有点繁琐,有没有更好的解决办法呢?

3 个回答

1

这可能对你有帮助::)

L[:] = []
4

我不太明白你为什么会担心你在内存中引用了一个新的、空的列表,而不是同一个“指针”。

你另外那个列表迟早会被清理掉,而在高级语言中,垃圾回收的机制让你通常不需要担心这些问题。

27

你正在寻找:

del L[:]

撰写回答