¿len(list)
calcula la longitud de la lista cada vez que se invoca o devuelve el valor del contador incorporado?
tengo un contexto en el que tengo que comprobar la longitud de una lista cada vez a través de un bucle, como:En python, ¿qué hace len (list)?
listData = []
for value in ioread():
if len(listData)>=25:
processlistdata()
clearlistdata()
listData.append(value)
debo comprobar len(listData)
en cada iteración, o debería tener un contador de la longitud de la lista ?
Estoy 99.9% seguro de que cualquier tipo de secuencia en idiomas de nivel superior almacenará su longitud. Las funciones 'len' (o' strlen' o 'length') en Python, Perl y Ruby (y otros idiomas similares) nunca deberían tomar O (N) tiempo. –
Reemplazaría su código por 'para el fragmento en mero (ioread(), 25): proceso (fragmento)' Donde 'mero()' se define similar a http://docs.python.org/library/itertools. html # recetas (es posible que desee reemplazar 'izip_longest()' por 'izip()' para colocar los últimos valores como lo hace su código). – jfs
¿Mide las dos versiones para ver cuál es realmente más rápido? Es más fácil usar 'timeit' y publicar sus resultados para que podamos comentar sobre ellos. –