Funzione map per iterare oggetti in Python

Supponiamo di avere una funzione square per elevare i numeri al quadrato. E c'è una lista, i cui elementi devono essere applicati a questa funzione:

pythondef square(num):
  return num ** 2

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

In Python per risolvere questo problema, si può usare una funzione speciale map. Accetta come parametri una funzione e una lista, ai cui elementi deve essere applicata. Usiamo map per risolvere l'esempio:

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

Ogni lista, come qualsiasi oggetto complesso, occupa molto spazio nella memoria di sistema di Python. Pertanto, per risparmiare risorse, dopo l'esecuzione del codice, non verrà restituita una nuova lista, ma un speciale oggetto iterabile map:

python<map object at 0x000001F16674BA00>

Iteriamolo con un ciclo:

pythonfor el in res:
  print(el)

Come risultato, verranno stampati tutti gli elementi della nuova lista:

python4
9
36
64
225

Per creare una nuova lista dall'oggetto map, è necessario applicare ad esso la funzione list:

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

Come risultato, verrà stampata la seguente lista:

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

Inoltre, quando si lavora con la funzione map, nel primo parametro è possibile specificare una funzione lambda. Riscriviamo l'esempio precedente usando una funzione lambda:

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

Riscrivi il seguente codice utilizzando una funzione lambda:

pythondef func(num):
  return num + 1

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

Riscrivi il seguente codice utilizzando una funzione lambda:

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

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