Me gusta la comprensión de listas

Alejandro Perez perezj en pipa.uji.es
Vie Abr 25 12:31:00 CEST 2003


Buenos días,

La extracción de elementos de una lista que ocupan
las posiciones determinas por una serie parece un
problema bastante normal. El uso de comprensión de 
lista está muy bien (F.Alted lo explica muy claro)
pero si la lectura del código se complica por hacer
mas compacta la rutina o las líneas de programa ...

> Por aquí irían los tiros:
> 
> [L[i] for i in [f.next() for i in xrange(100)]]
> [L[f.next()] for i in xrange(100)]
> 
> Aquí está el problema de que el generador podría estar "usado", y no
> daría los resultados esperados (no me gusta tener que utilizar .next() ).
> 

Yo que soy una persona con una memoria direccionable 
poco mas de 8 bits no recordaría para que pueden servir
cada una de las dos lineas anteriores, pasados unos días
desde el momento que las escribí.

Por eso yo optaría por una solución "tradicional"

indices = dame_N_elementos( N )

lista_final = [ L[ i ] for i in indices ]


En el caso de la longitud de indices sea muy grande, 
usaría dame_1_elemento_de_N con iteradores.

lista_final = [ L[ i ] for i dame_1_elemento_de_N( N ) ]

Con lo que tenemos disponibles todas las condiciones 
de corte en la CL y mantenemos la claridad. Creo :-)

En cualquier caso que vivan la comprensión de lista

Un saludo

------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es