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
Indice dei contenuti

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.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.