Función map para iterar objetos en Python
Supongamos que tenemos una función square para
elevar números al cuadrado. Y hay una lista
a cuyos elementos necesitamos aplicar
esta función:
def square(num):
return num ** 2
lst = [2, 3, 6, 8, 15]
En Python, para resolver esta tarea, se puede
usar una función especial map.
Toma como parámetros una función y una lista,
a cuyos elementos debe aplicarse.
Usemos map para resolver
el ejemplo:
res = map(square, lst)
print(res)
Cada lista, como cualquier objeto complejo, ocupa mucho espacio en la memoria del sistema de Python. Por lo tanto, para ahorrar recursos, después de ejecutar el código, no se devolverá una nueva lista, sino un objeto map iterable especial:
<map object at 0x000001F16674BA00>
Iterémoslo con un ciclo:
for el in res:
print(el)
Como resultado, se mostrarán todos los elementos de la nueva lista:
4
9
36
64
225
Para crear una nueva lista a partir de un objeto map,
se debe aplicar la función list a él:
lst = [2, 3, 6, 8, 15]
res = map(square, lst)
Como resultado, se mostrará la siguiente lista:
[4, 9, 36, 64, 225]
También, al trabajar con la función map en
el primer parámetro, se puede definir una función lambda.
Reescribamos el ejemplo anterior
usando una función lambda:
res = map(lambda num: num ** 2, lst, lst)
print(list(res))
Reescriba el siguiente código usando una función lambda:
def func(num):
return num + 1
lst = [1, 2, 3, 4, 5]
res = map(func, lst)
print(list(res))
Reescriba el siguiente código usando una función lambda:
def func(txt):
return txt[::-1]
lst = ['123', '456', '789']
res = map(func, lst)
print(list(res))