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

mjg*_*py3 7 python big-o

可能重复:
len()函数的开销

是否len()遍历列表中的对象,然后返回自己的计数?因此给它一个O(n).

要么....

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

Fre*_*Foo 12

Python列表知道自己的长度; len花费O(1)时间.列表实际上是数组,而不是Lisp中的链表,其中length需要线性时间.

  • "证明"http://wiki.python.org/moin/TimeComplexity (3认同)

Sve*_*ach 9

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