【发布时间】:2012-09-02 18:35:39
【问题描述】:
len() 是否遍历列表中的对象然后返回它们的计数?因此给它一个O(n)。
或者....
python 列表是否对附加到它的任何对象进行计数并从中删除,然后在调用len() 时简单地返回这个“计数”?因此给它O(1)。
【问题讨论】:
-
这是
O(1)这就是你需要的:wiki.python.org/moin/TimeComplexity
len() 是否遍历列表中的对象然后返回它们的计数?因此给它一个O(n)。
或者....
python 列表是否对附加到它的任何对象进行计数并从中删除,然后在调用len() 时简单地返回这个“计数”?因此给它O(1)。
【问题讨论】:
O(1)这就是你需要的:wiki.python.org/moin/TimeComplexity
Python 列表知道自己的长度; len 接受 O(1) time。 Lists are actually arrays,不是 Lisp 中的链表,length 需要线性时间。
【讨论】:
对于定义__len__() 的所有内置对象,它将是O(1)。如果你为自己的对象实现__len__(),它可能是任何东西。
【讨论】: