Comprender y utilizar Python map

La función incorporada Python map se utiliza para aplicar una función a todos los elementos de una llamada iterable.

Ámbitos de aplicación de Python map

La función Python map es una forma elegante de procesar el contenido de objetos iterables. Los objetos iterables son objetos de Python sobre los que se puede iterar. Incluyen Python lists, así como Python tuples, por ejemplo. La función map puede utilizarse en lugar de un bucle for de Python, que revisa cada elemento del iterable. El uso de map es especialmente útil si quieres aplicar una misma función a cada uno de estos elementos, que luego puedes pasar a la función como parámetro.

La sintaxis de la función map de Python

La sintaxis de Python map no es complicada:

map(function, iterable)
python

Como puedes ver en el ejemplo de código, la función toma dos parámetros. El primer parámetro describe la función que se aplicará a cada elemento de tu iterable y el segundo parámetro es el propio iterable que quieres recorrer. La función devuelve un objeto de la clase Python map al que se aplicó la función que pasaste. Puedes pasar este valor de retorno a funciones como list() o set() de Python para trabajar con los datos.

Python map en la práctica

Para visualizar el comportamiento de la función Python, es útil revisar un ejemplo de código:

def incrementar(n):
	return n + 1
numeros = (0, 1, 2, 3, 4)
resultado = map(incrementar, numeros)
resultado_lista = list(resultado)
python

En primer lugar, el fragmento de código crea una función llamada “incrementar” que toma un número y hace exactamente lo que promete su nombre. A continuación, se crea una lista Python llamada “numeros”, que contiene los números del 0 al 4, ambos inclusive. La parte interesante es la llamada a map: a la función se le pasa la función “incrementar” definida en el código como primer parámetro y la lista “numeros” como segundo parámetro. El resultado se almacena en la variable llamada “resultado”.

Para que puedas seguir trabajando con el resultado, la última línea de código del ejemplo convierte el resultado en una lista. Si consultas esta lista usando Python print, por ejemplo, te darás cuenta de que todos los elementos de la lista “numeros” pasados a map se han incrementado en 1. Por tanto, la pantalla mostraría lo siguiente: “(1, 2, 3, 4, 5)”.

Consejo

Python también es muy útil para proyectos web. Con Deploy Now de IONOS puedes desplegar fácilmente tus proyectos web a través de GitHub y construirlos automáticamente.

Python map con funciones lambda

Si las funciones que pasas a map de Python son simplemente funciones que quieres definir para los elementos de tu iterable, puede ser útil pasar la función a la función map como una expresión llamada lambda. Una expresión lambda de Python es básicamente una notación abreviada para funciones que puedes utilizar si quieres usar la función como parámetro. Como las funciones definidas de esta forma no tienen nombre y no pueden llamarse desde ninguna otra parte del código, también se denominan funciones anónimas.

Si vuelves a mirar el ejemplo de código ya explicado para el uso de Python map, también puedes sustituir la función “incrementar” por una expresión lambda adecuada y acortar así el código:

numeros = (0, 1, 2, 3, 4)
resultado = map(lambda n: n + 1, numeros)
resultado_lista = list(resultado)
python

En el comportamiento del código no cambia prácticamente nada. Solo se ha sustituido la función “incrementar” por una expresión lambda. Se introduce con la palabra clave “lambda” seguida de un parámetro que, de otro modo, escribirías en la cabecera de tu función. Después de los dos puntos, puedes especificar el retorno de la expresión lambda. Como puedes ver, esta variante del código es significativamente más corta gracias a la expresión lambda.

Pasar múltiples objetos iterables a Python map

Si quieres procesar dos objetos iterables, también puedes utilizar para ello la función map de Python. Un ejemplo ayuda para visualizar cómo se aplica la función mapa a dos objetos iterables:

a = (2, 3, 4)
b = (3, 4, 5)
resultado = map(lambda x, y: x + y, a, b)
resultado_lista = list(resultado)
python

En el ejemplo anterior, esta vez se crearon dos listas llamadas “a” y “b”, cada una con tres números. La llamada a map vuelve a utilizar una función anónima con una expresión lambda. Sin embargo, ahora esta función toma dos parámetros (x e y) y devuelve su suma. Como parámetros adicionales, pasamos ambas listas a Python map y convertimos el resultado de la llamada a la función de nuevo en una lista. El resultado es “(5, 7, 9)” porque es la suma de los números de las dos listas.

¿Le ha resultado útil este artículo?
Page top