Die map funksie vir iterasie van objekte in Python
Gestel ons het 'n funksie square vir
die kwadreer van getalle. En daar is 'n lys,
waarvan die elemente hierdie funksie
toegepas moet word:
def square(num):
return num ** 2
lst = [2, 3, 6, 8, 15]
In Python om hierdie taak op te los, kan 'n mens
die spesiale funksie map gebruik.
Dit neem as parameters 'n funksie en 'n lys,
waarop dit toegepas moet word.
Kom ons gebruik map om die
voorbeeld op te los:
res = map(square, lst)
print(res)
Elke lys soos enige komplekse objek neem baie plek in die Python stelselgeheue in. Dus, om hulpbronne te bespaar sal die kode nie 'n nuwe lys terugstuur nie, maar 'n spesiale itereerbare map-objek:
<map object at 0x000001F16674BA00>
Kom ons itereer oor dit met 'n lus:
for el in res:
print(el)
As gevolg sal al die elemente van die nuwe lys vertoon word:
4
9
36
64
225
Om van 'n map-objek 'n nuwe lys te skep,
moet die funksie list daarop toegepas word:
lst = [2, 3, 6, 8, 15]
res = map(square, lst)
As gevolg sal die volgende lys vertoon word:
[4, 9, 36, 64, 225]
Ook wanneer jy met die funksie map werk, kan jy
in die eerste parameter 'n lambda-funksie spesifiseer.
Kom ons herskryf die vorige voorbeeld met
behulp van 'n lambda-funksie:
res = map(lambda num: num ** 2, lst, lst)
print(list(res))
Herskryf die volgende kode deur 'n lambda-funksie:
def func(num):
return num + 1
lst = [1, 2, 3, 4, 5]
res = map(func, lst)
print(list(res))
Herskryf die volgende kode deur 'n lambda-funksie:
def func(txt):
return txt[::-1]
lst = ['123', '456', '789']
res = map(func, lst)
print(list(res))