[pyar] [Consulta] Comprensión de listas y Generadores
Roberto Alsina
ralsina en netmanagers.com.ar
Sab Jun 22 00:06:11 ART 2013
On 21/06/13 23:22, Apokalyptica Painkiller wrote:
> Buenas gente, les vuelvo a molestar con mis preguntas.
>
> En qué caso utilizaría comprensión y porqué y lo mismo para generadores.
>
Listas por comprensión:
1) Cuando la alternativa es escribir un loop DE POQUITAS LINEAS que crea
una lista.
Ejemplo tonto:
l=[]
for x in range(10):
l.append(x**2)
Es peor que
l = [x**2 for x in range(10)]
2) Cuando querés filtrar una lista, porque es más lindo que filter()
pares = [x for x in range(100) if x%2 == 0]
es mejor que
pares=filter(lambda x: not x%2, range(100))
Cuando *no* está bueno usarlas?
1) Cuando no querés la lista de resultado:
[os.system(cmd) for cmd in comandos]
Es peor que
for cmd in comandos: os.system(cmd) # Si, en una sola línea, y qué.
2) Cuando lo de adentro es complicado. Rápido, que hace esto?
l = [[x**2 for x in range(1, z**2)] for z in [random.randint(1,10) for x
in range(100)]]
More information about the pyar
mailing list