Η συνάρτηση map για την επανάληψη αντικειμένων στην Python

Ας υποθέσουμε ότι έχουμε τη συνάρτηση square για την αύξηση αριθμών στο τετράγωνο. Και υπάρχει μια λίστα, στις στοιχεία της οποίας πρέπει να εφαρμοστεί αυτή η συνάρτηση:

pythondef square(num):
  return num ** 2

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

Στην Python για να λύσουμε αυτό το πρόβλημα, μπορούμε να χρησιμοποιήσουμε μια ειδική συνάρτηση map. Δέχεται ως παραμέτρους τη συνάρτηση και τη λίστα, στα στοιχεία της οποίας πρέπει να εφαρμοστεί. Ας χρησιμοποιήσουμε την map για να λύσουμε το παράδειγμα:

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

Κάθε λίστα, όπως και κάθε σύνθετο αντικείμενο, καταλαμβάνει πολύ χώρο στη συστημική μνήμη της Python. Επομένως, για την εξοικονόμηση πόρων μετά από την εκτέλεση του κώδικα, δεν θα επιστραφεί νέα λίστα, αλλά ένα ειδικό επαναληπτικό αντικείμενο map:

python<map object at 0x000001F16674BA00>

Ας το επαναλάβουμε με βρόχο:

pythonfor el in res:
  print(el)

Ως αποτέλεσμα, θα εμφανιστούν όλα τα στοιχεία της νέας λίστας:

python4
9
36
64
225

Για να δημιουργήσουμε μια νέα λίστα από το αντικείμενο map, πρέπει να εφαρμόσουμε σε αυτό τη συνάρτηση list:

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

Ως αποτέλεσμα, θα εμφανιστεί η ακόλουθη λίστα:

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

Επίσης, όταν εργάζεστε με τη συνάρτηση map, μπορείτε να ορίσετε μια lambda συνάρτηση στην πρώτη παράμετρο. Ας ξαναγράψουμε το προηγούμενο παράδειγμα χρησιμοποιώντας μια lambda συνάρτηση:

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

Ξαναγράψτε τον ακόλουθο κώδικα χρησιμοποιώντας lambda συνάρτηση:

pythondef func(num):
  return num + 1

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

Ξαναγράψτε τον ακόλουθο κώδικα χρησιμοποιώντας lambda συνάρτηση:

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

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