Ayúdanos a seguir proporcionándote tutoriales gratuitos y de calidad desactivando tu bloqueador de anuncios. suscriptores a nuestro sitio.

Cómo usar la función de mapa en Python

1 mar 2021 2 min di lettura
Cómo usar la función de mapa en Python
Tabla de contenidos

Introducción

map() es una función incorporada en Python que aplica una función a todos los elementos en un dato iterable. Le permite escribir código simple y limpio sin usar bucles.

La función map () en Python

La función map() tiene la siguiente forma:

map(function, iterable,...)

Acepte dos argumentos obligatorios:

  • function: función llamada para cada elemento de iterable.
  • iterable: uno o más objetos que admiten la iteración. La mayoría de los objetos integrados de Python, como listas, diccionarios y tuplas, son iterables.

En Python 3, map() devuelve un objeto de mapa con un tamaño igual al objeto iterable pasado. En Python 2, la función devuelve una lista.

Veamos un ejemplo para explicar mejor cómo usar la función map(). Supongamos que tenemos una lista de cadenas y nos gustaría convertir cada elemento de la lista a mayúsculas.

Una forma de hacer esto es usar el tradicional bucle for

directions = ["north", "east", "south", "west"]
 directions_upper = []

 for direction in directions:
 d = direction.upper()
 directions_upper.append(d)

 print(directions_upper)
['NORTH', 'EAST', 'SOUTH', 'WEST']

Con la función map(), su código será mucho más simple y flexible.

def to_upper_case(s):
 return s.upper()

 directions = ["north", "east", "south", "west"]

 directions_upper = map(to_upper_case, directions)

 print(list(directions_upper))

Estamos usando la función list() para convertir el objeto de mapa devuelto en una lista:

['NORTH', 'EAST', 'SOUTH', 'WEST']

Si la función de devolución de llamada es simple, la forma más conveniente es usar una función lambda:

directions = ["north", "east", "south", "west"]

 directions_upper = map(lambda s: s.upper(), directions)

 print(list(directions_upper))

Una función lambda es una pequeña función anónima.

Aquí hay otro ejemplo que muestra cómo crear una lista de números cuadrados del 1 al 10:

squares = map(lambda n: n*n, range(1, 11))
 print(list(squares))
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

La función range() genera una secuencia de números enteros.

Usar map () con múltiples iterables

Puede pasar tantos iterables como desee a la función map(). El número de argumentos de entrada necesarios que acepta la función de devolución de llamada debe ser igual al número de iterables.

El siguiente ejemplo muestra cómo multiplicar elementos en dos listas:

def multiply(x, y):
 return x * y

 a = [1, 4, 6]
 b = [2, 3, 5]

 result = map(multiply, a, b)

 print(list(result))
[2, 12, 30]

El mismo código, pero usando la función lambda se verá así:

a = [1, 4, 6]
 b = [2, 3, 5]

 result = map(lambda x, y: x*y, a, b)

 print(list(result))

Cuando se proporcionan varios iterables, el tamaño del objeto devuelto es igual al iterable más corto.

Veamos un ejemplo cuando los iterables no tienen la misma longitud:

a = [1, 4, 6]
 b = [2, 3, 5, 7, 8]

 result = map(lambda x, y: x*y, a, b)

 print(list(result))

Los elementos sobrantes (7 y 8) se ignoran:

[2, 12, 30]

Conclusión

map() acepta un objeto iterable, junto con una función, y aplica esa función a cada elemento del iterable.

Apóyenos si le gusta nuestro contenido. Gracias.

Buy me a coffeeBuy me a coffee

Únase a la conversación

Apóyenos con una donación.

Genial! A continuación, complete el pago para obtener acceso completo a Noviello.it.
Bienvenido de nuevo! Has iniciado sesión correctamente.
Te has suscrito correctamente a Noviello.it.
Éxito! Su cuenta está completamente activada, ahora tiene acceso a todo el contenido.
Éxito! Su información de facturación ha sido actualizada.
Su facturación no se actualizó.