¡Hola!
Parece que me voy a estrenar con mi primer mensaje, aunque no me gusta la idea de que sea para realizar una consulta...
Voy a ello. Estoy con el libro "Learning Python" en el tema Iterations and Comprehensions, Part 2. Para entender mejor la comprensión de listas hace varias comparaciones con utilidades como map y filter.
Veamos un ejemplo de los que nos encontramos en el libro:
Queremos crear una lista que se el cuadrado de los números pares entre el 0 y el 9 (ambos incluidos). Partiendo de la siguiente comprensión de lista:
Podemos utilizar map y filter para conseguir lo mismo:
El resultado obtenido es el mismo en ambos casos:
Si pasamos a una comprensión de lista más "compleja" para encontrar su equivalente con las utilidades map y filter.
Obteniendo como resultado una lista de tuplas:
Obtenemos este mismo resultado si utilizamos el clásico loop for.
¿Se os ocurre cuál sería el equivalente de esta comprensión de lista con las utilidades map y filter?
Parece que me voy a estrenar con mi primer mensaje, aunque no me gusta la idea de que sea para realizar una consulta...
Voy a ello. Estoy con el libro "Learning Python" en el tema Iterations and Comprehensions, Part 2. Para entender mejor la comprensión de listas hace varias comparaciones con utilidades como map y filter.
Veamos un ejemplo de los que nos encontramos en el libro:
Queremos crear una lista que se el cuadrado de los números pares entre el 0 y el 9 (ambos incluidos). Partiendo de la siguiente comprensión de lista:
Código [Seleccionar]
[x ** 2 for x in range(10) if x % 2 == 0]
Podemos utilizar map y filter para conseguir lo mismo:
Código [Seleccionar]
list(map((lambda x: x ** 2), filter((lambda x: x % 2 == 0), range(10))))
El resultado obtenido es el mismo en ambos casos:
Código [Seleccionar]
[0, 4, 16, 36, 65]
Si pasamos a una comprensión de lista más "compleja" para encontrar su equivalente con las utilidades map y filter.
Código [Seleccionar]
[(x, y) for x in range(5) if x % 2 == 0 for y in range(5) if y % 2 == 1]
Obteniendo como resultado una lista de tuplas:
Código [Seleccionar]
[(0, 1), (0, 3), (2, 1), (2, 3), (4, 1), (4, 3)]
Obtenemos este mismo resultado si utilizamos el clásico loop for.
Código [Seleccionar]
resultado = []
for x in range(5):
if x % 2 == 0:
for y in range(5):
if y % 2 == 1:
resultado.append((x,y))
¿Se os ocurre cuál sería el equivalente de esta comprensión de lista con las utilidades map y filter?