Funksioni map për përsëritjen e objekteve në Python
Le të themi se kemi funksionin square për
ngritjen e numrave në katror. Dhe ka një listë,
elementeve të së cilës duhet të aplikojmë
këtë funksion:
def square(num):
return num ** 2
lst = [2, 3, 6, 8, 15]
Në Python për të zgjidhur këtë detyrë, mund
të përdoret një funksion i veçantë map.
Ai merr si parametra funksionin dhe listën,
elementeve të së cilës duhet ta aplikojë atë.
Le të përdorim map për të zgjidhur
shembullin:
res = map(square, lst)
print(res)
Çdo listë si dhe çdo objekt kompleks zë shumë hapësirë në memorien sistematike të Python. Prandaj për të kursyer burime pas ekzekutimit të kodit nuk do të kthehet një listë e re, por një objekt i veçantë i përsëritshëm map:
<map object at 0x000001F16674BA00>
Le ta përsërisim atë me një cikël:
for el in res:
print(el)
Si rezultat do të printohen të gjithë elementët e listës së re:
4
9
36
64
225
Për të krijuar një listë të re nga objekti map,
duhet të aplikoni funksionin list në të:
lst = [2, 3, 6, 8, 15]
res = map(square, lst)
Si rezultat do të printohet lista e mëposhtme:
[4, 9, 36, 64, 225]
Gjithashtu kur punoni me funksionin map në
parametrin e parë mund të përcaktohet një funksion lambda.
Le të rishkruajmë shembullin e mëparshëm me
ndihmën e funksionit lambda:
res = map(lambda num: num ** 2, lst, lst)
print(list(res))
Rishkruani kodin e mëposhtëm përmes funksionit lambda:
def func(num):
return num + 1
lst = [1, 2, 3, 4, 5]
res = map(func, lst)
print(list(res))
Rishkruani kodin e mëposhtëm përmes funksionit lambda:
def func(txt):
return txt[::-1]
lst = ['123', '456', '789']
res = map(func, lst)
print(list(res))