Lambdas y la función map()
En el más simple de todos los casos posibles, la función map()
toma dos argumentos:
- Una función.
- Una lista.
map(función, lista)
La descripción anterior está extremadamente simplificada, ya que:
- El segundo argumento
map()
puede ser cualquier entidad que se pueda iterar (por ejemplo, una tupla o un generador). map()
puede aceptar más de dos argumentos.
La función map()
aplica la función pasada por su primer argumento a todos los elementos de su segundo argumento y devuelve un iterador que entrega todos los resultados de funciones posteriores. Puedes usar el iterador resultante en un bucle o convertirlo en una lista usando la función list()
.
¿Puedes ver un papel para una lambda aquí?
Observa el código en el editor: hemos usado dos lambdas en él.
Esta es la explicación:
- Se construye la
lista1
con valores del0
al4
. - Después, se utiliza
map
junto con la primerlambda
para crear una nueva lista en la que todos los elementos han sido evaluados como2
elevado a la potencia tomada del elemento correspondiente delista1
. lista2
es entonces impresa.- En el siguiente paso, se usa nuevamente la función
map()
para hacer uso del generador que devuelve, e imprimir directamente todos los valores que entrega; como puedes ver, hemos usado el segundolambda
aquí - solo eleva al cuadrado cada elemento delista2
.
Intenta imaginar el mismo código sin lambdas. ¿Sería mejor? Es improbable.