Map, Filter and Reduce
Last updated
Last updated
La función map()
es una función incorporada en Python que se utiliza para aplicar una función a cada elemento de una lista o iterador y devolver un nuevo objeto iterable con los resultados.
Sintaxis
La sintaxis básica de la función map() es la siguiente:
Donde:
function
: es la función que se aplicará a cada elemento del iterable.
iterable
: es el iterable al que se aplicará la función.
Podemos proporcionar uno o más iterables como argumentos adicionales. En este caso, la función que se aplica a cada elemento debe aceptar tantos argumentos como iterables se hayan proporcionado.
Ejemplos
Aplicar una función a cada elemento de una lista:
Supongamos que tenemos una lista de números y queremos calcular el cuadrado de cada número. Podemos usar la función map()
junto con una función lambda para lograr esto de la siguiente manera:
En este ejemplo, pasamos una función lambda que eleva cada elemento al cuadrado como el primer argumento de la función map()
. Luego, pasamos la lista de números como el segundo argumento. Finalmente, usamos la función list()
para convertir el objeto map en una lista.
Aplicar una función a dos o más listas:
También podemos aplicar una función a elementos correspondientes de dos o más listas. En este caso, la función debe aceptar tantos argumentos como iterables se hayan proporcionado. Supongamos que tenemos dos listas y queremos calcular la suma de los elementos correspondientes. Podemos hacerlo de la siguiente manera:
En este ejemplo, pasamos una función lambda que toma dos argumentos (x e y) y devuelve su suma. Luego, pasamos las dos listas como argumentos adicionales.
Aplicar una función a una cadena:
También podemos aplicar una función a cada carácter de una cadena. En este caso, la función debe aceptar un solo argumento. Supongamos que tenemos una cadena y queremos convertir cada carácter a su correspondiente valor entero en la tabla ASCII. Podemos hacerlo de la siguiente manera:
En este ejemplo, pasamos la función ord()
que convierte cada carácter a su valor entero en la tabla ASCII como el primer argumento de la función map()
. Luego, pasamos la cadena como el segundo argumento. Finalmente, usamos la función list()
para convertir el objeto map en una lista.
En Python, la función filter()
se utiliza para filtrar elementos de una secuencia según una función dada. La función filter()
devuelve un objeto de tipo iterador que contiene los elementos de la secuencia para los cuales la función dada devuelve True
.
La sintaxis básica de la función filter()
es la siguiente:
donde función
es la función que se aplicará a cada elemento de la secuencia
, y secuencia
es la secuencia que se desea filtrar. La función función
debe tomar un argumento y devolver True
o False
según se desee incluir o excluir el elemento de la secuencia.
Supongamos que se desea filtrar una lista de números para obtener solo los números pares. Se puede utilizar la función filter()
junto con una función lambda (función anónima) para lograr esto:
En este ejemplo, la función lambda lambda x: x % 2 == 0
toma un argumento x
y devuelve True
si x
es par y False
en caso contrario. La función filter()
aplica esta función a cada elemento de la lista numeros
y devuelve un iterador que contiene solo los números pares.
También se puede utilizar una función definida por el usuario en lugar de una función lambda con la función filter()
. Por ejemplo, supongamos que se desea filtrar una lista de cadenas para obtener solo las que contienen un carácter determinado:
En este ejemplo, la función contiene_letra()
toma dos argumentos, letra
y cadena
, y devuelve True
si la letra se encuentra en la cadena y False
en caso contrario. La función filter()
aplica esta función a cada elemento de la lista palabras
y devuelve un iterador que contiene solo las palabras que contienen la letra 'h'.
La función filter()
es una herramienta poderosa para filtrar elementos de una secuencia según una función dada. Se puede utilizar una función lambda o una función definida por el usuario para especificar la condición de filtrado. La función filter()
devuelve un iterador que contiene solo los elementos de la secuencia que cumplen la condición.