擅长:python、mysql、java
<p>它被称为O(1)的一些理由:</p>
<p><code>clear()</code>方法实际上只是将内部字典结构分配给新的空值(如<a href="https://github.com/python/cpython/blob/master/Objects/dictobject.c#L1636" rel="nofollow noreferrer">source</a>所示)。看起来O(n)部分是引用计数和其他与GC相关的内容减少的结果。但这纯粹是CPython使用的GC方法的一个功能(即引用计数);您可以设想不同的方法,这些方法不需要像这样显式的清理,或者清理会在很晚之后发生(甚至会逐渐消失)。由于理想情况下,<code>clear()</code>的时间复杂度不应依赖于底层的GC方法,因此省略了所有与GC相关的部分,使其成为“O(1)”。在我看来,这主要是一个定义上的争论,而不是其他任何东西,但这至少是一些正当理由。在</p>