Τι είναι οι λειτουργίες Lambda και πώς να τις χρησιμοποιήσετε;



Μάθετε τις λειτουργίες Python lambda μαζί με τη διαφορά μεταξύ των κανονικών συναρτήσεων και των λειτουργιών lambda και πώς μπορούν να χρησιμοποιηθούν στο φίλτρο (), στο χάρτη (), στη μείωση ().

Το όνομα είναι μια σύμβαση που χρησιμοποιείται για να αναφέρεται ή να αντιμετωπίζει οποιαδήποτε οντότητα. Σχεδόν όλα γύρω μας έχουν ένα όνομα. Ο κόσμος του προγραμματισμού συμβαδίζει επίσης με αυτό. Αλλά είναι απαραίτητο να αναφέρουμε τα πάντα; Ή μπορείτε να έχετε κάτι που είναι απλά «ανώνυμο»; Η απάντηση είναι ναι. ' παρέχει λειτουργίες Lambda, επίσης γνωστές ως ανώνυμες συναρτήσεις που στην πραγματικότητα είναι ανώνυμες. Ας προχωρήσουμε λοιπόν για να μάθουμε για αυτά τα «Ανώνυμα Μυστήρια» του Python, με την ακόλουθη σειρά.

Ας ξεκινήσουμε λοιπόν :)





Γιατί να χρησιμοποιήσετε τις λειτουργίες Python Lambda;


Ο κύριος σκοπός των ανώνυμων συναρτήσεων εμφανίζεται στην εικόνα όταν χρειάζεστε κάποια λειτουργία μόνο μία φορά. Μπορούν να δημιουργηθούν όπου χρειάζονται. Λόγω αυτού του λόγου, οι λειτουργίες Python Lambda είναι επίσης γνωστές ως λειτουργίες απορρίψεων που χρησιμοποιούνται μαζί με άλλες προκαθορισμένες λειτουργίες όπως φίλτρο (), χάρτης () κ.λπ. Αυτές οι λειτουργίες συμβάλλουν στη μείωση του αριθμού των γραμμών του κώδικα σας σε σύγκριση με κανονικός .

Για να το αποδείξουμε αυτό, ας προχωρήσουμε περαιτέρω και να μάθουμε για τις λειτουργίες Python Lambda.



Τι είναι οι λειτουργίες Python Lambda;


Οι συναρτήσεις Python Lambda είναι συναρτήσεις που δεν έχουν κανένα όνομα. Είναι επίσης γνωστές ως ανώνυμες ή ανώνυμες συναρτήσεις. Η λέξη «λάμδα» δεν είναι ένα όνομα, αλλά είναι μια λέξη-κλειδί. Αυτή η λέξη-κλειδί καθορίζει ότι η συνάρτηση που ακολουθεί είναι ανώνυμη.

Τώρα που γνωρίζετε τι αναφέρονται σε αυτές τις ανώνυμες συναρτήσεις, ας προχωρήσουμε περαιτέρω για να δούμε πώς γράφετε αυτές τις λειτουργίες Python Lambda.

Πώς να γράψετε Λειτουργίες Lambda στο Python;

Μια συνάρτηση Lambda δημιουργείται χρησιμοποιώντας τον τελεστή lambda και η σύνταξή της έχει ως εξής:



ΣΥΝΤΑΞΗ:

επιχειρήματα λάμδα: έκφραση

Πύθων συνάρτηση λάμδα μπορεί να έχει πολλά επιχειρήματα, αλλά χρειάζεται μόνο μια έκφραση. Οι είσοδοι ή τα ορίσματα μπορούν να ξεκινήσουν από το 0 και να φτάσουν σε οποιοδήποτε όριο. Όπως και άλλες λειτουργίες, είναι εντάξει να έχουμε λειτουργίες λάμδα χωρίς είσοδο. Επομένως, μπορείτε να έχετε λειτουργίες λάμδα σε οποιαδήποτε από τις ακόλουθες μορφές:

ΠΑΡΑΔΕΙΓΜΑ:

lambda: 'Προσδιορίστε τον σκοπό'

Εδώ, η συνάρτηση lambda δεν λαμβάνει επιχειρήματα.

ΠΑΡΑΔΕΙΓΜΑ:

λάμδα αένας: «Καθορίστε τη χρήση του aένας'

Εδώ, η λάμδα παίρνει μία είσοδο που είναι μιαένας.

τύπος συνάρτησης σε sql

Ομοίως, μπορείτε να έχετε λάμδα αένας, προς το2, προς το3..προς τον.

Ας πάρουμε μερικά παραδείγματα για να το δείξουμε αυτό:

ΠΑΡΑΔΕΙΓΜΑ 1:

a = λάμδα x: x * x εκτύπωση (α (3))

ΠΑΡΑΓΩΓΗ: 9

ΠΑΡΑΔΕΙΓΜΑ 2:

a = λάμδα x, y: x * y εκτύπωση (a (3,7))

ΠΑΡΑΓΩΓΗ: είκοσι ένα

Όπως μπορείτε να δείτε, έχω λάβει δύο παραδείγματα εδώ. Το πρώτο παράδειγμα χρησιμοποιεί τη συνάρτηση λάμδα με μία μόνο έκφραση, ενώ το δεύτερο παράδειγμα έχει δύο ορίσματα. Λάβετε υπόψη ότι και οι δύο συναρτήσεις έχουν μία μόνο έκφραση ακολουθούμενη από τα ορίσματα. Επομένως, οι λειτουργίες lambda δεν μπορούν να χρησιμοποιηθούν όπου χρειάζεστε εκφράσεις πολλαπλών γραμμών

Από την άλλη πλευρά, οι κανονικές συναρτήσεις python μπορούν να πάρουν οποιονδήποτε αριθμό δηλώσεων στους ορισμούς τους.

Πώς μειώνουν το μέγεθος του κώδικα οι ανώνυμες συναρτήσεις;

Πριν συγκρίνετε τον απαιτούμενο αριθμό κώδικα, ας γράψουμε πρώτα τη σύνταξη του και να το συγκρίνουμε με εκείνο των λειτουργιών λάμδα που περιγράφηκαν προηγουμένως.

Οποιαδήποτε κανονική συνάρτηση στο Python ορίζεται χρησιμοποιώντας ένα ορισμός λέξη-κλειδί ως εξής:

ΣΥΝΤΑΞΗ:

def function_name (παράμετροι):
δήλωση

Όπως μπορείτε να δείτε, το ποσό του κωδικού που απαιτείται για μια συνάρτηση λάμδα είναι αρκετά μικρότερο από αυτό των κανονικών συναρτήσεων.

Ας ξαναγράψουμε το παράδειγμα που πήραμε νωρίτερα χρησιμοποιώντας κανονικές συναρτήσεις τώρα.

ΠΑΡΑΔΕΙΓΜΑ:

def my_func (x): επιστροφή x * x εκτύπωση (my_func (3))

ΠΑΡΑΓΩΓΗ: 9

Όπως μπορείτε να δείτε, στο παραπάνω παράδειγμα, χρειαζόμαστε μια δήλωση επιστροφής στο my_func για να αξιολογήσουμε την τιμή του τετραγώνου του 3. Αντίθετα, η συνάρτηση lambda δεν κάνει χρήση αυτής της δήλωσης επιστροφής, αλλά, το σώμα της ανώνυμης συνάρτησης γράφεται στην ίδια γραμμή με την ίδια τη συνάρτηση, μετά το σύμβολο άνω και κάτω τελείας. Επομένως, το μέγεθος της συνάρτησης είναι μικρότερο από αυτό του my_func.

πώς να εγκαταστήσετε διακομιστή σεφ

Ωστόσο, οι λειτουργίες λάμδα στα παραπάνω παραδείγματα, καλούνται χρησιμοποιώντας κάποιες άλλες ένα. Αυτό γίνεται επειδή αυτές οι λειτουργίες είναι ανώνυμες και συνεπώς απαιτούν κάποιο όνομα. Όμως, αυτό το γεγονός μπορεί να φαίνεται συγκεχυμένο γιατί να χρησιμοποιείτε τέτοιες ανώνυμες συναρτήσεις όταν πρέπει να εκχωρήσετε κάποιο άλλο όνομα για να τις καλέσετε; Και φυσικά, αφού εκχωρήσω το όνομα α στη λειτουργία μου, δεν μένει πια ανώνυμο! Σωστά?

Είναι μια νόμιμη ερώτηση, αλλά το θέμα είναι ότι αυτός δεν είναι ο σωστός τρόπος χρήσης αυτών των ανώνυμων λειτουργιών.

Οι ανώνυμες λειτουργίες χρησιμοποιούνται καλύτερα σε άλλες συναρτήσεις υψηλότερης τάξης που είτε χρησιμοποιούν κάποια λειτουργία ως όρισμα είτε, επιστρέφουν μια συνάρτηση ως έξοδο. Για να το αποδείξουμε αυτό, ας προχωρήσουμε τώρα στο επόμενο θέμα μας.

Λειτουργίες Python Lambda εντός λειτουργιών που καθορίζονται από το χρήστη:

Όπως αναφέρθηκε παραπάνω, οι λειτουργίες λάμδα χρησιμοποιούνται σε άλλες λειτουργίες για να χαρακτηρίσουν το καλύτερο πλεονέκτημα.

Το ακόλουθο παράδειγμα αποτελείται από το new_func που είναι μια κανονική συνάρτηση python που παίρνει ένα όρισμα x. Αυτό το όρισμα προστίθεται στη συνέχεια σε κάποιο άγνωστο όρισμα y το οποίο παρέχεται μέσω της συνάρτησης λάμδα.

ΠΑΡΑΔΕΙΓΜΑ:

def new_func (x): return (lambda y: x + y) t = new_func (3) u = new_func (2) εκτύπωση (t (3)) εκτύπωση (u (3))

ΠΑΡΑΓΩΓΗ:

6
5
Όπως μπορείτε να δείτε, στο παραπάνω παράδειγμα, η συνάρτηση lambda που υπάρχει στο new_func καλείται κάθε φορά που χρησιμοποιούμε το new_func (). Κάθε φορά, μπορούμε να μεταφέρουμε ξεχωριστές τιμές στα ορίσματα.

Τώρα που έχετε δει πώς να χρησιμοποιείτε ανώνυμες συναρτήσεις σε συναρτήσεις υψηλότερης τάξης, ας προχωρήσουμε τώρα για να κατανοήσουμε μια από τις πιο δημοφιλείς χρήσεις της που βρίσκεται στις μεθόδους φίλτρου (), χάρτη () και μείωσης ()

Τρόπος χρήσης των ανώνυμων συναρτήσεων στο φίλτρο (), στο χάρτη () και στη μείωση ():

Ανώνυμες συναρτήσεις εντός φίλτρο():

φίλτρο():

Η μέθοδος filter () χρησιμοποιείται για το φιλτράρισμα των δεδομένων iterables (λίστες, σύνολα κ.λπ.) με τη βοήθεια μιας άλλης συνάρτησης, που μεταδίδεται ως επιχείρημα, για να δοκιμάσει όλα τα στοιχεία ως αληθή ή ψευδή.

Η σύνταξη αυτής της συνάρτησης είναι:

ΣΥΝΤΑΞΗ:

φίλτρο (λειτουργία, επαναλαμβανόμενη)

Τώρα εξετάστε το ακόλουθο παράδειγμα:

ΠΑΡΑΔΕΙΓΜΑ:

my_list = [2,3,4,5,6,7,8] new_list = list (φίλτρο (lambda a: (a / 3 == 2), my_list)) εκτύπωση (new_list)

ΠΑΡΑΓΩΓΗ: [6]

Εδώ, το my_list είναι μια λίστα με επαναλαμβανόμενες τιμές που μεταβιβάζεται στη λειτουργία φίλτρου. Αυτή η συνάρτηση χρησιμοποιεί τη συνάρτηση lambda για να ελέγξει αν υπάρχουν τιμές στη λίστα, που θα ισούται με 2 όταν διαιρείται με το 3. Η έξοδος αποτελείται από μια λίστα που ικανοποιεί την έκφραση που υπάρχει μέσα στην ανώνυμη συνάρτηση.

χάρτης():

Η συνάρτηση map () στο Python είναι μια συνάρτηση που εφαρμόζει μια δεδομένη συνάρτηση σε όλα τα iterables και επιστρέφει μια νέα λίστα.

ΣΥΝΤΑΞΗ:

χάρτης (λειτουργία, επαναλαμβανόμενη)

Ας πάρουμε ένα παράδειγμα για να δείξουμε τη χρήση των λειτουργιών λάμδα στη συνάρτηση χάρτη ():

__μέσα σε αυτό__

ΠΑΡΑΔΕΙΓΜΑ:

my_list = [2,3,4,5,6,7,8] new_list = list (χάρτης (lambda a: (a / 3! = 2), li)) εκτύπωση (new_list)

ΠΑΡΑΓΩΓΗ:

[True, True, True, True, False, True, True]

Η παραπάνω έξοδος δείχνει ότι, όποτε η τιμή των επαναλήψεων δεν είναι ίση με 2 όταν διαιρείται με το 3, το αποτέλεσμα που επιστρέφεται πρέπει να είναι True. Ως εκ τούτου, για όλα τα στοιχεία στη λίστα my_, επιστρέφει αληθές εκτός από την τιμή 6 όταν η συνθήκη αλλάζει σε False.

περιορίζω():

Η συνάρτηση μείωση () χρησιμοποιείται για να εφαρμόσει κάποια άλλη συνάρτηση σε μια λίστα στοιχείων που μεταβιβάζονται ως παράμετρος σε αυτήν και τελικά επιστρέφει μία μόνο τιμή.

Η σύνταξη αυτής της συνάρτησης έχει ως εξής:

ΣΥΝΤΑΞΗ:

μείωση (λειτουργία, ακολουθία)

ΠΑΡΑΔΕΙΓΜΑ:

από functools εισαγωγή μείωση μείωση (lambda a, b: a + b, [23,21,45,98])

Το παραπάνω παράδειγμα απεικονίζεται στην ακόλουθη εικόνα:

μείωση-python lambda-edureka

ΠΑΡΑΓΩΓΗ: 187

Η έξοδος δείχνει ξεκάθαρα ότι όλα τα στοιχεία της λίστας είναι προστίθεται συνεχώς για να επιστρέψετε το τελικό αποτέλεσμα.

Με αυτό, καταλήγουμε στο τέλος αυτού του άρθρου σχετικά με το «Python Lambda». Ελπίζω να είστε ξεκάθαροι με όλα όσα έχουν μοιραστεί μαζί σας. Βεβαιωθείτε ότι εξασκείστε όσο το δυνατόν περισσότερο και επαναφέρετε την εμπειρία σας.

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων αυτού του ιστολογίου «Python Lambda» και θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό.

Για να μάθετε σε βάθος την Python μαζί με τις διάφορες εφαρμογές της, μπορείτε να εγγραφείτε ζωντανά με υποστήριξη 24/7 και πρόσβαση σε όλη τη διάρκεια ζωής.