Skip to main content
 首页 » 编程设计

python之使用字典或集合的 clear 方法有性能优势吗

2025年05月04日46artech

我刚刚发现在 Python 字典和集合中都有一个 clear 方法。该方法实际上只是从对象中删除所有条目。

是否有充分的理由或什至是调用 foo.clear() 而不是 foo = {} 或 foo 有意义=设置()?

我可以想象它可能更有效地进行垃圾收集,但它似乎违反了“应该有一种——最好只有一种——显而易见的方法来做到这一点。”

请您参考如下方法:

当您对同一个集合对象有多个引用时,只有 clear() 可以清空集合而无需重新分配。

比较:

>>> def clear(s): 
...     s.clear() 
... 
>>> def clear_assignment(s): 
...     s = set() 
... 
>>> foo = {'bar', 'baz'} 
>>> clear_assignment(foo) 
>>> foo 
{'baz', 'bar'} 
>>> clear(foo) 
>>> foo 
set() 

赋值将 one 名称重新绑定(bind)到新的 set() 对象,而 set.clear() 会从可变对象中删除所有内容,而无需重新-赋值,因此您可以继续使用对该集合的其他引用。