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:

pythondef 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:

pythonres = 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:

python<map object at 0x000001F16674BA00>

Le ta përsërisim atë me një cikël:

pythonfor el in res:
  print(el)

Si rezultat do të printohen të gjithë elementët e listës së re:

python4
9
36
64
225

Për të krijuar një listë të re nga objekti map, duhet të aplikoni funksionin list në të:

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

Si rezultat do të printohet lista e mëposhtme:

python[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:

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

Rishkruani kodin e mëposhtëm përmes funksionit lambda:

pythondef func(num):
  return num + 1

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

Rishkruani kodin e mëposhtëm përmes funksionit lambda:

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

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