Funktionen map för att iterera över objekt i Python

Antag att vi har en funktion square för att upphöja tal i kvadrat. Och det finns en lista, vars element vi behöver applicera denna funktion på:

pythondef square(num):
  return num ** 2

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

I Python för att lösa denna uppgift kan man använda en speciell funktion map. Den tar som parametrar en funktion och en lista, vars element den ska appliceras på. Låt oss använda map för att lösa exemplet:

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

Varje lista, liksom alla komplexa objekt, tar upp mycket plats i Pythons systemminne. Därför, för att spara resurser, returneras det efter kodkörningen inte en ny lista, utan ett speciellt itererbart map-objekt:

python<map object at 0x000001F16674BA00>

Låt oss iterera över det med en loop:

pythonfor el in res:
  print(el)

Som ett resultat kommer alla element i den nya listan att skrivas ut:

python4
9
36
64
225

För att skapa en ny lista från map-objektet behöver man applicera funktionen list på det:

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

Som ett resultat kommer följande lista att skrivas ut:

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

Även när man arbetar med funktionen map kan man i den första parametern ange en lambda-funktion. Låt oss skriva om föregående exempel med hjälp av en lambda-funktion:

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

Skriv om följande kod med en lambda-funktion:

pythondef func(num):
  return num + 1

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

Skriv om följande kod med en lambda-funktion:

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

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