2012-09-09 10 views
6

Duplicar posibles:
Cost of len() function¿Cuál es la notación big-o para la función `len()` en Python?

¿El len() iterar sobre los objetos en una lista y luego regresar a su recuento? Por lo tanto, dándole un O (n).

O ....

¿Tiene una lista de Python mantener un recuento de todos los objetos que se adjuntan a la misma y se retira de él y simplemente se devuelve este "recuento" cuando len() se llama? Así, dándole O (1).

+1

es 'O (1)' esto es lo que necesita: http://wiki.python.org/moin/TimeComplexity –

Respuesta

9

Una lista de Python conoce su propia longitud; len toma O(1) time. Lists are actually arrays, listas no vinculadas como en Lisp, donde length toma tiempo lineal.

+2

"proof" http://wiki.python.org/moin/TimeComplexity – mgilson

8

Para todos los objetos incorporados que definen __len__(), será O (1). Si implementa __len__() para sus propios objetos, podría ser cualquier cosa.

Cuestiones relacionadas