Função map para iterar objetos em Python

Suponha que temos uma função square para elevar números ao quadrado. E há uma lista cujos elementos precisam ter essa função aplicada a eles:

pythondef square(num):
  return num ** 2

lst = [2, 3, 6, 8, 15]

Em Python, para resolver esta tarefa, podemos usar uma função especial map. Ela recebe como parâmetros uma função e uma lista cujos elementos devem tê-la aplicada. Vamos usar map para resolver o exemplo:

pythonres = map(square, lst)
print(res)

Cada lista, assim como qualquer objeto complexo, ocupa muito espaço na memória do sistema Python. Portanto, para economizar recursos, após a execução do código, não será retornada uma nova lista, mas um objeto map iterável especial:

python<map object at 0x000001F16674BA00>

Vamos iterar sobre ele com um loop:

pythonfor el in res:
  print(el)

Como resultado, todos os elementos da nova lista serão exibidos:

python4
9
36
64
225

Para criar uma nova lista a partir do objeto map, é necessário aplicar a função list a ele:

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

Como resultado, a seguinte lista será exibida:

python[4, 9, 36, 64, 225]

Além disso, ao trabalhar com a função map, no primeiro parâmetro pode ser definida uma função lambda. Vamos reescrever o exemplo anterior usando uma função lambda:

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

Reescreva o seguinte código usando uma função lambda:

pythondef func(num):
  return num + 1

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

Reescreva o seguinte código usando uma função lambda:

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

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