【发布时间】:2009-09-09 16:08:21
【问题描述】:
以这种方式清空列表似乎很“脏”:
while len(alist) > 0 : alist.pop()
是否有明确的方法可以做到这一点?
【问题讨论】:
-
那么为什么python dicts 和sets 有clear() 方法,而没有lists?
-
但是如果有多个对象的引用,它可能会有用。
-
如果我需要在运行时清除进程的共享列表并且不需要等待垃圾处理(或者我错了吗?我误解了垃圾收集吗?),这可能会很有用。另外,如果我想检查每个弹出的元素,我可以在无法使用切片的情况下对其进行调试(或者我错了)。我不需要在清除列表时停止进程执行。
-
@S.Lott 仅仅因为你不明白为什么这很重要并不意味着我们其他人不明白。如果多个对象依赖于一个公共列表,这将很重要。在几种设计模式中,这很重要。垃圾收集器意味着您不必自己清理;这不是制造更多混乱的许可。
-
尽管有任何其他更好的答案,但您的初始代码可能已经编写:while alist: alist.pop()