Python Συνάρτηση map() με ΠΑΡΑΔΕΙΓΜΑΤΑ
⚡ Έξυπνη Σύνοψη
Python Η map() εφαρμόζει μια δεδομένη συνάρτηση σε κάθε στοιχείο ενός επαναλήψιμου στοιχείου, όπως μια λίστα, μια πλειάδα, ένα σύνολο, ένα λεξικό ή μια συμβολοσειρά. Επιστρέφει ένα αντικείμενο lazy map που μετατρέπετε με την list() ή επαναλαμβάνετε χρησιμοποιώντας έναν βρόχο.
Σύνταξη
map(function, iterator1,iterator2 ...iteratorN)
Παράμετροι
Εδώ είναι δύο σημαντικές παράμετροι:
- λειτουργία: Μια υποχρεωτική συνάρτηση που θα δοθεί στην map(), η οποία θα εφαρμοστεί σε όλα τα στοιχεία που είναι διαθέσιμα στον επαναλήπτη.
- επαναλήπτης: Ένα υποχρεωτικό επαναλήψιμο αντικείμενο. Μπορεί να είναι μια λίστα, μια πλειάδα κ.λπ. Μπορείτε να περάσετε πολλά αντικείμενα επαναλήπτη στη συνάρτηση map().
επιστροφή Αξία
Η συνάρτηση map() εφαρμόζει τη δεδομένη συνάρτηση σε όλα τα στοιχεία μέσα στον επαναλήπτη και επιστρέφει ένα επαναλήψιμο αντικείμενο χάρτη, δηλαδή, μια πλειάδα, μια λίστα, κ.λπ.
Πώς λειτουργεί η συνάρτηση map();
Η συνάρτηση map() δέχεται δύο εισόδους: μια συνάρτηση και ένα επαναλήψιμο αντικείμενο. Η συνάρτηση που δίνεται στη map() είναι μια κανονική συνάρτηση και επαναλαμβάνει όλες τις τιμές που υπάρχουν στο επαναλήψιμο αντικείμενο.
Για παράδειγμα, θεωρήστε ότι έχετε μια λίστα με αριθμούς και θέλετε να βρείτε το τετράγωνο καθενός από τους αριθμούς.
Για να λάβουμε την έξοδο, χρειαζόμαστε μια συνάρτηση που θα επιστρέφει το τετράγωνο του δεδομένου αριθμού. Η συνάρτηση έχει ως εξής:
def square(n): return n*n
Η λίστα με τα στοιχεία για τα οποία θέλουμε να βρούμε το τετράγωνο έχει ως εξής:
my_list = [2,3,4,5,6,7,8,9]
Τώρα ας χρησιμοποιήσουμε την ενσωματωμένη συνάρτηση map() για να βρούμε το τετράγωνο καθενός από τα στοιχεία στη λίστα_my.
Ο τελικός κωδικός είναι ο εξής:
def square(n): return n*n my_list = [2,3,4,5,6,7,8,9] updated_list = map(square, my_list) print(updated_list) print(list(updated_list))
Παραγωγή:
<map object at 0x0000002C59601748>
[4, 9, 16, 25, 36, 49, 64, 81]
Η έξοδος της συνάρτησης map(), όπως φαίνεται παραπάνω, είναι ένα αντικείμενο map που εμφανίζεται στην οθόνη ως .
Θα πρέπει να επαναλάβετε την έξοδο από την map() χρησιμοποιώντας έναν βρόχο for ή τη μέθοδο list() για να λάβετε την τελική έξοδο. Έχω χρησιμοποιήσει την list() στον κώδικα για να εμφανίσω τις τιμές μέσα στη δεδομένη λίστα.
Έτσι, χρησιμοποιώντας τη συνάρτηση map(), μπορούμε να βρούμε το τετράγωνο κάθε αριθμού. Η λίστα που δόθηκε στη συνάρτηση map() ήταν [2,3,4,5,6,7,8,9], και χρησιμοποιώντας τη συνάρτηση square(), η έξοδος που πήραμε είναι [4, 9, 16, 25, 36, 49, 64, 81].
Η συνάρτηση map() εφαρμόζει τη συνάρτηση square() σε όλα τα στοιχεία της λίστας. Για παράδειγμα, παίρνει τη μεταβλητή my_list και ενημερώνει τη λίστα με το τετράγωνο κάθε αριθμού. Η έξοδος αποθηκεύεται στη μεταβλητή updated_list.
Χρήση map() με Python ενσωματωμένες συναρτήσεις
The Python Η συνάρτηση map() είναι μια ενσωματωμένη συνάρτηση και μπορεί επίσης να χρησιμοποιηθεί με άλλες ενσωματωμένες συναρτήσεις που είναι διαθέσιμες PythonΣε αυτό το παράδειγμα, θα χρησιμοποιήσουμε το Python ενσωματωμένη συνάρτηση round() που στρογγυλοποιεί τις δοσμένες τιμές.
Παράδειγμα:
Η λίστα που έχω είναι my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]. Χρειάζομαι τις στρογγυλεμένες τιμές για κάθε στοιχείο που υπάρχει στη λίστα, επομένως θα χρησιμοποιήσουμε τη συνάρτηση round() ως συνάρτηση για την αντιστοίχιση της συνάρτησης().
my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907] updated_list = map(round, my_list) print(updated_list) print(list(updated_list))
Παραγωγή:
<map object at 0x000000E65F901748>
[3, 4, 4, 6, 6, 8, 8, 10]
Η συνάρτηση round() εφαρμόζεται σε όλα τα στοιχεία της λίστας και επιστρέφει μια λίστα με όλες τις τιμές στρογγυλοποιημένες, όπως φαίνεται στην έξοδο.
Χρησιμοποιώντας τη map() με μια συμβολοσειρά ως επαναλήπτη
Μπορούμε επίσης να χρησιμοποιήσουμε τη map() σε μια συμβολοσειρά. Σε Python, μια συμβολοσειρά λειτουργεί σαν πίνακας, επομένως μπορούμε εύκολα να τη χρησιμοποιήσουμε μέσα στο map().
Σε αυτό το παράδειγμα, έχουμε μια συνάρτηση myMapFunc() που φροντίζει για τη μετατροπή της δεδομένης συμβολοσειράς σε κεφαλαία γράμματα. Η συνάρτηση myMapFunc() δίνεται στη συνάρτηση map(). Η συνάρτηση map() θα φροντίσει για τη μετατροπή της δεδομένης συμβολοσειράς σε κεφαλαία γράμματα περνώντας τη συμβολοσειρά στη myMapFunc().
def myMapFunc(s): return s.upper() my_str = "welcome to guru99 tutorials!" updated_list = map(myMapFunc, my_str) print(updated_list) for i in updated_list: print(i, end="")
Παραγωγή:
<map object at 0x000000DF2E711748>
WELCOME TO GURU99 TUTORIALS!
Χρήση map() με μια λίστα από Numbers
Για να εργαστούμε με μια λίστα στην map(), θα πάρουμε μια λίστα αριθμών και θα πολλαπλασιάσουμε κάθε αριθμό στη λίστα επί 10.
Η λίστα που θα χρησιμοποιήσουμε είναι [2,3,4,5,6,7,8,9]. Η συνάρτηση myMapFunc() πολλαπλασιάζει τον δεδομένο αριθμό επί 10. Η συνάρτηση δίνεται στην map() μαζί με τη λίστα.
Παράδειγμα:
def myMapFunc(n): return n*10 my_list = [2,3,4,5,6,7,8,9] updated_list = map(myMapFunc, my_list) print(updated_list) print(list(updated_list))
Παραγωγή:
<map object at 0x000000EE2C061898>
[20, 30, 40, 50, 60, 70, 80, 90]
Το αποτέλεσμα που βλέπουμε είναι ότι κάθε αριθμός στη λίστα πολλαπλασιάζεται επί 10.
Χρήση map() με το Tuple
Μια πλειάδα είναι ένα αντικείμενο μέσα Python που έχει στοιχεία χωρισμένα με κόμματα και περικλειόμενα σε στρογγυλές αγκύλες. Σε αυτό το παράδειγμα, θα πάρουμε μια πλειάδα με τιμές συμβολοσειράς. Η συνάρτηση που θα χρησιμοποιήσουμε θα μετατρέψει τις δεδομένες τιμές σε κεφαλαία γράμματα.
Παράδειγμα:
def myMapFunc(n): return n.upper() my_tuple = ('php','java','python','c++','c') updated_list = map(myMapFunc, my_tuple) print(updated_list) print(list(updated_list))
Παραγωγή:
<map object at 0x0000009C3C3A16A0> ['PHP', 'JAVA', 'PYTHON', 'C++', 'C']
Η έξοδος που παίρνουμε είναι μια πλειάδα προς τα πίσω με όλες τις τιμές σε αυτήν μετατρεπόμενες σε κεφαλαία γράμματα.
Χρήση map() με λεξικό
A λεξικό σε Python δημιουργείται χρησιμοποιώντας αγκύλες ({}). Δεδομένου ότι το λεξικό είναι ένας επαναλήπτης, μπορείτε να το χρησιμοποιήσετε μέσα στη συνάρτηση map(). Ας χρησιμοποιήσουμε τώρα ένα λεξικό ως επαναλήπτη μέσα στη συνάρτηση map().
Το ακόλουθο παράδειγμα δείχνει τη λειτουργία ενός επαναλήπτη λεξικού μέσα στο map():
def myMapFunc(n): return n*10 my_dict = {2,3,4,5,6,7,8,9} finalitems = map(myMapFunc, my_dict) print(finalitems) print(list(finalitems))
Παραγωγή:
<map object at 0x0000007EB451DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]
Χρήση map() με Set
Ένα σετ σε Python είναι μια μη ταξινομημένη συλλογή στοιχείων σε αγκύλες ({}). Δεδομένου ότι η set() είναι επίσης ένας επαναλήπτης, μπορείτε να τη χρησιμοποιήσετε μέσα στη συνάρτηση map().
Ακολουθεί ένα λειτουργικό παράδειγμα χρήσης ενός συνόλου ως επαναλήπτη μέσα στο map():
def myMapFunc(n): return n*10 my_set = {2,3,4,5,6,7,8,9} finalitems = map(myMapFunc, my_set) print(finalitems) print(list(finalitems))
Παραγωγή:
<map object at 0x000000AC8F05DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]
Χρήση map() με συνάρτηση Lambda
In Python, οι εκφράσεις λάμδα χρησιμοποιούνται για την κατασκευή ανώνυμων συναρτήσεων. Θα πρέπει να χρησιμοποιήσετε τη λέξη-κλειδί λάμδα όπως ακριβώς χρησιμοποιείτε το def για να ορίσετε κανονικές συναρτήσεις.
Έτσι, σε αυτό το παράδειγμα, θα χρησιμοποιήσουμε τη συνάρτηση λάμδα μέσα στην map(). Η συνάρτηση λάμδα θα πολλαπλασιάσει κάθε τιμή στη λίστα επί 10.
Παράδειγμα:
my_list = [2,3,4,5,6,7,8,9] updated_list = map(lambda x: x * 10, my_list) print(updated_list) print(list(updated_list))
Παραγωγή:
<map object at 0x000000BD18B11898>
[20, 30, 40, 50, 60, 70, 80, 90]
Χρήση πολλαπλών επαναληπτών μέσα στη συνάρτηση map()
Παράδειγμα 1: Διαβίβαση δύο επαναληπτών λίστας στη συνάρτηση map()
Μπορείτε να στείλετε περισσότερους από έναν επαναλήπτες, π.χ. μια λίστα, μια πλειάδα κ.λπ., όλα ταυτόχρονα στη συνάρτηση map().
Για παράδειγμα, αν θέλετε να προσθέσετε δύο λίστες, το ίδιο μπορεί να γίνει χρησιμοποιώντας τη συνάρτηση map(). Θα χρησιμοποιήσουμε δύο λίστες, my_list1 και my_list2.
Στο παρακάτω παράδειγμα, το πρώτο στοιχείο στο my_list1 προστίθεται στο πρώτο στοιχείο του my_list2. Η συνάρτηση myMapFunc() λαμβάνει στοιχεία των my_list1 και my_list2 και επιστρέφει το άθροισμα και των δύο.
Ακολουθεί ένα λειτουργικό παράδειγμα προσθήκης δύο δεδομένων λιστών χρησιμοποιώντας τη συνάρτηση map().
def myMapFunc(list1, list2): return list1+list2 my_list1 = [2,3,4,5,6,7,8,9] my_list2 = [4,8,12,16,20,24,28] updated_list = map(myMapFunc, my_list1,my_list2) print(updated_list) print(list(updated_list))
Παραγωγή:
<map object at 0x0000004D5F751860>
[6, 11, 16, 21, 26, 31, 36]
Παράδειγμα 2: Μεταβίβαση μιας Πλειάδας και ενός επαναλήπτη λίστας στην map()
Θα χρησιμοποιήσουμε μια λίστα και έναν επαναλήπτη πλειάδας στη συνάρτηση map(). Η συνάρτηση που δίνεται στη map(), myMapFunc(), θα λάβει τα στοιχεία από τη λίστα και την πλειάδα. Τα στοιχεία θα ενωθούν με μια υπογράμμιση (_). Το παράδειγμα λειτουργίας φαίνεται παρακάτω:
def myMapFunc(list1, tuple1): return list1+"_"+tuple1 my_list = ['a','b', 'b', 'd', 'e'] my_tuple = ('PHP','Java','Python','C++','C') updated_list = map(myMapFunc, my_list,my_tuple) print(updated_list) print(list(updated_list))
Παραγωγή:
<map object at 0x00000059F37BB4E0> ['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']

