Šajā rakstā uzzināsiet par anonīmo funkciju, kas pazīstama arī kā lambda funkcijas. Jūs uzzināsiet, kas tie ir, to sintakse un kā tos izmantot (ar piemēriem).
Kādas ir lambda funkcijas Python?
Programmā Python anonīma funkcija ir funkcija, kas definēta bez nosaukuma.
Lai gan parastās funkcijas tiek definētas, izmantojot def
Python atslēgvārdu, anonīmas funkcijas tiek noteiktas, izmantojot lambda
atslēgvārdu.
Tādējādi anonīmās funkcijas sauc arī par lambda funkcijām.
Kā Python lietot lambda funkcijas?
Lambda funkcijai pitonā ir šāda sintakse.
Lambda funkcijas sintakse pitonā
lambda argumenti: izteiksme
Lambda funkcijās var būt jebkurš argumentu skaits, bet tikai viena izteiksme. Izteiksme tiek novērtēta un atgriezta. Lambda funkcijas var izmantot visur, kur nepieciešami funkciju objekti.
Lambda funkcijas piemērs pitonā
Šeit ir lambda funkcijas piemērs, kas dubulto ievades vērtību.
# Program to show the use of lambda functions double = lambda x: x * 2 print(double(5))
Rezultāts
10
Iepriekš minētajā programmā lambda x: x * 2
ir lambda funkcija. Šeit x ir arguments un x * 2
izteiksme, kas tiek novērtēta un atgriezta.
Šai funkcijai nav nosaukuma. Tas atgriež funkcijas objektu, kas tiek piešķirts identifikatoram double
. Tagad mēs to varam saukt par normālu funkciju. Paziņojums
dubultā = lambda x: x * 2
ir gandrīz tāds pats kā:
def dubultā (x): atgriešanās x * 2
Lambda funkcijas izmantošana pitonā
Mēs izmantojam lambda funkcijas, ja uz īsu laika periodu ir nepieciešama funkcija bez nosaukuma.
Programmā Python mēs to parasti izmantojam kā argumentu augstākas pakāpes funkcijai (funkcijai, kas citas funkcijas pieņem kā argumentus). Lambda funkcijas tiek izmantotas kopā ar iebūvētām funkcijām, piemēram filter()
, map()
utt.
Izmantošanas piemērs ar filtru ()
filter()
Python funkcija notiek ar funkciju un saraksta kā argumentu.
Funkcija tiek izsaukta ar visiem saraksta vienumiem un tiek atgriezts jauns saraksts, kurā ir vienumi, kurus funkcija novērtē True
.
Šeit ir piemērs filter()
funkcijas izmantošanai, lai no saraksta filtrētu tikai pāra skaitļus.
# Program to filter out only the even items from a list my_list = (1, 5, 4, 6, 8, 11, 3, 12) new_list = list(filter(lambda x: (x%2 == 0) , my_list)) print(new_list)
Rezultāts
(4, 6, 8, 12)
Lietojuma piemērs ar karti ()
map()
Python funkcija notiek ar funkciju un sarakstā.
Funkcija tiek izsaukta ar visiem saraksta vienumiem un tiek atgriezts jauns saraksts, kurā ir vienumi, kurus šī funkcija atdod par katru vienumu.
Šeit ir piemērs map()
funkcijas izmantošanai, lai dubultotu visus saraksta vienumus.
# Program to double each item in a list using map() my_list = (1, 5, 4, 6, 8, 11, 3, 12) new_list = list(map(lambda x: x * 2 , my_list)) print(new_list)
Rezultāts
(2, 10, 8, 12, 16, 22, 6, 24)