Python συνάρτηση map() με EXAMPLES
Python Η map() εφαρμόζει μια συνάρτηση σε όλα τα στοιχεία ενός επαναλήπτη που δίνεται ως είσοδος. Ένας επαναλήπτης, για παράδειγμα, μπορεί να είναι μια λίστα, μια πλειάδα, ένα σύνολο, ένα λεξικό, μια συμβολοσειρά και επιστρέφει ένα επαναλαμβανόμενο αντικείμενο χάρτη. Python Η map() είναι μια ενσωματωμένη συνάρτηση.
Σύνταξη
map(function, iterator1,iterator2 ...iteratorN)
παράμετροι
Εδώ είναι δύο σημαντικά
- συνάρτηση: Μια υποχρεωτική συνάρτηση που θα δοθεί στη χαρτογράφηση, η οποία θα εφαρμοστεί σε όλα τα στοιχεία που είναι διαθέσιμα στον επαναλήπτη.
- iterator: Επαναληπτικό υποχρεωτικό αντικείμενο. Μπορεί να είναι μια λίστα, μια πλειάδα, κ.λπ. Μπορείτε να περάσετε πολλά αντικείμενα επαναλήπτη στη συνάρτηση map().
επιστροφή Αξία
Η συνάρτηση map() θα εφαρμόσει τη δεδομένη συνάρτηση σε όλα τα στοιχεία μέσα στον επαναλήπτη και θα επιστρέψει ένα επαναλαμβανόμενο αντικείμενο χάρτη, π.χ. μια πλειάδα, μια λίστα κ.λπ.
Πώς λειτουργεί η συνάρτηση map();
Η συνάρτηση map() λαμβάνει δύο εισόδους ως συνάρτηση και ένα επαναληπτικό αντικείμενο. Η συνάρτηση που δίνεται στη map() είναι μια κανονική συνάρτηση και θα επαναλάβει όλες τις τιμές που υπάρχουν στο επαναλαμβανόμενο αντικείμενο που δίνεται.
Για παράδειγμα, θεωρήστε ότι έχετε μια λίστα με αριθμούς και θέλετε να βρείτε το τετράγωνο καθενός από τους αριθμούς.
Για να πάρουμε την έξοδο, χρειαζόμαστε τη συνάρτηση που θα επιστρέψει το τετράγωνο του δεδομένου αριθμού. Η λειτουργία θα είναι η εξής:
def square(n): return n*n
Η λίστα των αντικειμένων που θέλουμε να βρούμε το τετράγωνο είναι η εξής:
my_list = [2,3,4,5,6,7,8,9]
Τώρα ας χρησιμοποιήσουμε την ενσωματωμένη συνάρτηση map() python για να πάρουμε το τετράγωνο καθενός από τα στοιχεία στη λίστα μου.
Ο τελικός κωδικός είναι ο εξής:
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(), όπως φαίνεται στην έξοδο, είναι ένα αντικείμενο χάρτη που εμφανίζεται στην οθόνη ως .
Θα πρέπει να επαναλάβετε την έξοδο από τον χάρτη χρησιμοποιώντας μια μέθοδο for-loop ή χρησιμοποιώντας τη μέθοδο list() για να λάβετε την τελική έξοδο. Έχω χρησιμοποιήσει τη list() στον κώδικα που εμφανίζει τις τιμές μέσα στη λίστα που δίνεται.
Έτσι, χρησιμοποιώντας τη συνάρτηση map(), μπορούμε να πάρουμε το τετράγωνο κάθε αριθμού. Η λίστα που δόθηκε στον χάρτη ήταν [2,3,4,5,6,7,8,9] και χρησιμοποιώντας τη συνάρτηση Square() η έξοδος από τη map() που πήραμε είναι [4, 9, 16, 25, 36, 49, 64, 81] .
Η συνάρτηση map() εφαρμόζει τη συνάρτηση Square() σε όλα τα στοιχεία της λίστας. Για παράδειγμα, η μεταβλητή my_list και ενημερώνει τη λίστα με το τετράγωνο κάθε αριθμού. Το out αποθηκεύεται στη μεταβλητή updated_list.
Χρήση map() με Python ενσωματωμένες συναρτήσεις
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(). Η συνάρτηση χάρτη θα φροντίσει να μετατρέψει τη συμβολοσειρά που δίνεται σε κεφαλαία, περνώντας τη συμβολοσειρά στο 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() με listof Numbers
Για να εργαστείτε με τη λίστα στο map() θα λάβετε μια λίστα αριθμών και θα πολλαπλασιάσετε κάθε αριθμό στη λίστα με το 10.
Η λίστα που θα χρησιμοποιήσουμε είναι: [2,3,4,5,6,7,8,9]. Η συνάρτηση myMapFunc () φροντίζει να πολλαπλασιάσει τον δεδομένο αριθμό με το 10. Η συνάρτηση δίνεται στη χαρτογράφηση μαζί με τη λίστα.
Παράδειγμα:
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().
Το παρακάτω παράδειγμα δείχνει τη λειτουργία του επαναληπτικού λεξικού μέσα στο χάρτη()
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().
Ακολουθεί ένα παράδειγμα εργασίας χρήσης του set ως επαναλήπτη εντός του χάρτη()
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(). Θα χρησιμοποιήσουμε δύο λίστες 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(). Η συνάρτηση δίνεται στη χαρτογράφηση – η 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']
Σύνοψη
- Python Η map() είναι μια ενσωματωμένη συνάρτηση που εφαρμόζει μια συνάρτηση σε όλα τα στοιχεία ενός επαναλήπτη που δίνονται ως είσοδος. Ένας επαναλήπτης, για παράδειγμα, μπορεί να είναι μια λίστα, μια πλειάδα, μια συμβολοσειρά κ.λπ. και επιστρέφει ένα επαναλαμβανόμενο αντικείμενο χάρτη.
- Η συνάρτηση map() θα εφαρμόσει τη δεδομένη συνάρτηση σε όλα τα στοιχεία μέσα στον επαναλήπτη και θα επιστρέψει ένα επαναλαμβανόμενο αντικείμενο χάρτη, π.χ. μια πλειάδα, μια λίστα κ.λπ.
- Python Η συνάρτηση map() είναι μια ενσωματωμένη συνάρτηση και μπορεί επίσης να χρησιμοποιηθεί με άλλες ενσωματωμένες συναρτήσεις που είναι διαθέσιμες Python.
- Μια πλειάδα είναι ένα αντικείμενο μέσα Python που έχει στοιχεία χωρισμένα με κόμμα και περικλείονται σε στρογγυλές αγκύλες. Στο παράδειγμα θα πάρει μια πλειάδα με τιμές συμβολοσειράς. Η συνάρτηση που θα χρησιμοποιήσουμε θα μετατρέψει τις τιμές που δίνονται σε κεφαλαία.
- Ένα λεξικό σε Python δημιουργείται χρησιμοποιώντας σγουρές αγκύλες({}). Δεδομένου ότι το λεξικό είναι ένας επαναλήπτης, μπορείτε να το χρησιμοποιήσετε μέσα στη συνάρτηση map().
- Εδραιώνομαι Python είναι μια μη ταξινομημένη συλλογή στοιχείων σε σγουρές αγκύλες(()). Εφόσον το set() είναι επίσης ένας επαναλήπτης, μπορείτε να το χρησιμοποιήσετε μέσα στη συνάρτηση map().
- In Python, εκφράσεις λάμδα (ή μορφές λάμδα) χρησιμοποιούνται για την κατασκευή ανώνυμων συναρτήσεων. Επομένως, η λέξη-κλειδί lambda πρέπει να χρησιμοποιείται όταν θέλετε να χρησιμοποιήσετε το lambda μέσα στο map().
- Μπορείτε να στείλετε περισσότερους από έναν επαναλήπτες, δηλαδή μια λίστα, μια πλειάδα στη συνάρτηση map().