On 17/02/10 10:37, marmolro wrote:
Bueno, se trataba de ver las diferencias entre las "listas por
compresión" y los generadores... el utilizar o no la función any creo
que no impacta nada.
Precisamente a eso se refería Chema, que lo importante es si usas LC o
generadores. Por resumir lo tratado en el hilo:
- True in [pred(x) for x in iterable]
True in (pred(x) for x in iterable)
son equivalentes, respectivamente, a:
- any([pred(x) for x in iterable])
any(pred(x) for x in iterable)
En la primera opción (lista por compresión) se recorre completamente el iterable
y se crea una lista (de igual tamaño que el iterable), mientras que la segunda
(generador) se detiene en el primer elemento que cumpla el predicado sin
almacenar nada. Por tanto, es claramente más eficiente la segunda (más rápida,
menos memoria).
Por otra parte, el equivalente a all() sería:
False not in (pred(x) for x in iterable)
--
http://www.arnau-sanchez.com
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/