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:

pythondef 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:

pythonres = 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:

python<map object at 0x000001F16674BA00>

Iterémoslo con un ciclo:

pythonfor el in res:
  print(el)

Como resultado, se mostrarán todos los elementos de la nueva lista:

python4
9
36
64
225

Para crear una nueva lista a partir de un objeto map, se debe aplicar la función list a él:

pythonlst = [2, 3, 6, 8, 15]
res = map(square, lst)

Como resultado, se mostrará la siguiente lista:

python[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:

pythonres = map(lambda num: num ** 2, lst, lst)
print(list(res))
Задание 1

Reescriba el siguiente código usando una función lambda:

pythondef func(num):
  return num + 1

lst = [1, 2, 3, 4, 5]
res = map(func, lst)
print(list(res))
Задание 2

Reescriba el siguiente código usando una función lambda:

pythondef func(txt):
  return txt[::-1]

lst = ['123', '456', '789']
res = map(func, lst)
print(list(res))