2012-09-09 7 views
6

Eventuali duplicati:
Cost of len() functionQual è la notazione big-o per la funzione `len()` in Python?

Does len() iterate nel corso degli oggetti in una lista e poi tornare il loro numero? Così dandogli un O (n).

O ....

Fa un elenco di pitone tenere un conteggio di tutti gli oggetti che vengono aggiunti ad esso e rimossi da esso e poi semplicemente restituire questo "conteggio" quando len() si chiama? Così dandogli O (1).

+1

è 'O (1)' questo è quello che ti serve: http://wiki.python.org/moin/TimeComplexity –

risposta

9

Una lista Python conosce la propria lunghezza; len prende O(1) time. Lists are actually arrays, non elenchi collegati come in Lisp, dove length richiede tempo lineare.

+2

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

8

Per tutti gli oggetti incorporati che definiscono __len__(), sarà O (1). Se si implementa __len__() per i propri oggetti, potrebbe essere qualsiasi cosa.

Problemi correlati