可能重复:
Cost of len() function
len()
迭代列表中的对象然后返回它们的计数吗?因此给它一个 O(n)。
或者....
python列表是否保留了附加到它并从中删除的任何对象的计数,然后在调用len()
时简单地返回此“count”?因此给它 O(1)。
答案 0 :(得分:10)
Python列表知道自己的长度; len
需要O(1) time。 Lists are actually arrays,而不是Lisp中的链接列表,其中length
需要线性时间。
答案 1 :(得分:8)
对于定义__len__()
的所有内置对象,它将为O(1)。如果为自己的对象实现__len__()
,则可能是任何内容。