Funkcija map objektu iterācijai Python
Pieņemsim, ka mums ir funkcija square
skaitļu kāpināšanai kvadrātā. Un ir saraksts,
kura elementiem nepieciešams piemērot
šo funkciju:
def square(num):
return num ** 2
lst = [2, 3, 6, 8, 15]
Python, lai atrisinātu šo uzdevumu, var
izmantot speciālu funkciju map.
Tā pieņem parametros funkciju un sarakstu,
kura elementiem to nepieciešams piemērot.
Izmantosim map piemēra atrisināšanai:
res = map(square, lst)
print(res)
Katrs saraksts, tāpat kā jebkurš sarežģīts objekts, aizņem daudz vietas Python sistēmas atmiņā. Tāpēc resursu taupīšanas nolūkos pēc koda izpildes tiks atgriezts nevis jauns saraksts, bet speciāls iterējams map-objekts:
<map object at 0x000001F16674BA00>
Izmantosim to ciklā:
for el in res:
print(el)
Rezultātā tiks izvadīti visi jaunā saraksta elementi:
4
9
36
64
225
Lai izveidotu no map-objekta jaunu sarakstu,
tam jāpiemēro funkcija list:
lst = [2, 3, 6, 8, 15]
res = map(square, lst)
Rezultātā tiks izvadīts šāds saraksts:
[4, 9, 36, 64, 225]
Arī strādājot ar funkciju map
pirmajā parametrā var norādīt lambda-funkciju.
Pārrakstīsim iepriekšējo piemēru
ar lambda-funkcijas palīdzību:
res = map(lambda num: num ** 2, lst, lst)
print(list(res))
Pārrakstiet šo kodu ar lambda-funkciju:
def func(num):
return num + 1
lst = [1, 2, 3, 4, 5]
res = map(func, lst)
print(list(res))
Pārrakstiet šo kodu ar lambda-funkciju:
def func(txt):
return txt[::-1]
lst = ['123', '456', '789']
res = map(func, lst)
print(list(res))