Python中`len()`函数的重要注意事项是什么?

时间:2012-09-09 19:59:32

标签: python big-o

  

可能重复:
  Cost of len() function

len()迭代列表中的对象然后返回它们的计数吗?因此给它一个 O(n)

或者....

python列表是否保留了附加到它并从中删除的任何对象的计数,然后在调用len()时简单地返回此“count”?因此给它 O(1)

2 个答案:

答案 0 :(得分:10)

Python列表知道自己的长度; len需要O(1) timeLists are actually arrays,而不是Lisp中的链接列表,其中length需要线性时间。

答案 1 :(得分:8)

对于定义__len__()的所有内置对象,它将为O(1)。如果为自己的对象实现__len__(),则可能是任何内容。