Vodnik za začetnike za razumevanje funkcij Python Lambda

Vodnik za začetnike za razumevanje funkcij Python Lambda

Lambde v Pythonu so ena najbolj uporabnih, pomembnih in zanimivih funkcij, ki jih morate poznati. Na žalost jih je enostavno razumeti in se zmotiti.





V tem članku bomo razložili vse, kar morate vedeti o teh skrivnostnih funkcijah, kako jih uporabljati in zakaj so koristne.





Preden se poglobite v te praktične primere, boste morda želeli nastaviti virtualno okolje Python. Če tega sploh ne želite, potem poskusite vsaj te primere z interaktivno spletno lupino Python .





Kaj je lambda v Pythonu?

Lambda je preprosto način definiranja funkcije v Pythonu. Včasih so znani tudi kot „lambda operaterji“ ali „lambda funkcije“.

Če ste že uporabljali Python, ste svoje funkcije verjetno definirali z uporabo def ključna beseda in zaenkrat vam je dobro delovala. Zakaj torej obstaja drug način za isto stvar?



Razlika je v tem, da so lambda funkcije anonimne. To pomeni, da so funkcije, ki jih ni treba poimenovati. Uporabljajo se za ustvarjanje majhnih, enkratnih funkcij v primerih, ko bi bila 'prava' funkcija prevelika in obsežna.

Lambde vrnejo funkcijski objekt, ki ga je mogoče dodeliti spremenljivki. Lambde imajo lahko poljubno število argumentov, lahko pa imajo le en izraz. Drugih funkcij v lambdah ne morete poklicati.





Najpogostejša uporaba lambda funkcij je v kodi, ki zahteva preprosto enovrstično funkcijo, kjer bi bilo preveč pisati popolno normalno funkcijo. To je podrobneje opisano spodaj, pod naslovom 'Kaj pa zemljevid, filtriranje in zmanjšanje?'.

Kako uporabljati Lambde v Pythonu

Preden pogledamo lambda funkcijo, poglejmo super osnovno funkcijo, opredeljeno na 'tradicionalen' način:





def add_five(number):
return number + 5

print(add_five(number=4))

Ta funkcija je zelo osnovna, vendar služi za ponazoritev lambdas. Tvoje so morda bolj zapletene od tega. Ta funkcija vsakemu številu, ki mu je posredovano skozi., Doda pet številko parameter.

Tako izgleda kot lambda funkcija:

add_five = lambda number: number + 5

print(add_five(number=4))

Namesto uporabe def , beseda lambda se uporablja. Oklepci niso potrebni, vse besede, ki sledijo lambda ključne besede so ustvarjene kot parametri. Dvopičje se uporablja za ločevanje parametrov in izraza. V tem primeru je izraz številka + 5 .

Ni potrebe po uporabi vrnitev ključna beseda --- lambda to naredi samodejno.

Tako bi ustvarili lambda funkcijo z dvema argumentoma:

kako najti mladičke za prodajo
add_numbers_and_five = lambda number1, number2: number1 + number2 + 5

print(add_numbers_and_five(number1=4, number2=3))

Če še vedno niste prepričani glede točke lambdas, se bo naslednji del potopil in vam pomagal videti luč.

Python Lambde z zemljevidom, filtriranjem in zmanjšanjem

Osnovna knjižnica Python ima tri imenovane metode zemljevid , zmanjšati , in filter . Te metode so verjetno najboljši razlog za uporabo lambda funkcij.

The zemljevid funkcija pričakuje dva argumenta: funkcijo in seznam. Vzame to funkcijo in jo uporabi za vsak element na seznamu, pri čemer seznam spremenjenih elementov vrne kot objekt zemljevida. The seznam funkcija se uporablja za pretvorbo nastalega predmeta zemljevida nazaj v seznam.

Tako lahko uporabite zemljevid brez lambde:

list1 = [2, 4, 6, 8]
print(list1)
def add_five(number):
return number + 5

new_list = list(map(add_five, list1))
print(new_list)

Ta funkcija zemljevida je zelo priročna, vendar bi lahko bila boljša. the add_five funkcija se posreduje kot argument, kaj pa, če ne želite ustvariti funkcije vsakič, ko uporabljate zemljevid? Namesto tega lahko uporabite lambda!

Evo, kako izgleda ista koda, le da je funkcijo zamenjala lambda:

kako spremeniti sliko profila youtube
list1 = [2, 4, 6, 8]
print(list1)

new_list = list(map(lambda x: x + 5, list1))
print(new_list)

Kot vidite, celota add_five funkcija ni več potrebna. Namesto tega se lambda funkcija uporablja za vzdrževanje stvari čiste.

S filter funkcijo, postopek je skoraj enak. Filter vzame funkcijo in jo uporabi za vse elemente na seznamu ter ustvari nov seznam samo z elementi, zaradi katerih je funkcija vrnila vrednost True.

Najprej brez lambdas:

numbers = [1, 4, 5, 10, 20, 30]
print(numbers)
def greater_than_ten_func(number):
if number > 10:
return True
else:
return False
new_numbers = list(filter(greater_than_ten_func, numbers))

print(new_numbers)

S to kodo ni nič narobe, vendar traja malo dlje. Poglejmo, koliko vrstic lahko lambda odstrani:

numbers = [1, 4, 5, 10, 20, 30]
print(numbers)
new_numbers = list(filter(lambda x: x > 10, numbers))
print(new_numbers)

Lambda funkcija je nadomestila potrebo po celoti večji_po_ten_func ! In to je storjeno v petih preprostih besedah. Zato so lambde močne: zmanjšujejo nered za preprosta opravila.

Za konec pa poglejmo zmanjšati . Reduce je še ena kul funkcija Pythona. Za vse postavke na seznamu uporablja tekoči izračun. To lahko uporabite za seštevanje vsote ali pomnožite vse številke skupaj:

from functools import reduce
numbers = [10, 20, 30, 40]
print(numbers)
def summer(a, b):
return a + b

result = reduce(summer, numbers)
print(result)

Ta primer je treba uvoziti zmanjšati Iz functools modul, vendar ne skrbite, modul functools je del osnovne knjižnice Python.

Z lambda je zgodba zelo podobna, funkcija ni potrebna:

from functools import reduce
numbers = [10, 20, 30, 40]
print(numbers)

result = reduce(lambda a, b: a + b, numbers)
print(result)

Na kaj morate biti pozorni pri Python Lambdah

Ti primeri so pokazali, kako lahke so lambda funkcije, skupaj z zemljevidom, filtriranjem in zmanjšanjem iz osnovne knjižnice Python. Kljub temu obstaja nekaj uporab, pri katerih lambda funkcije ne pomagajo.

Če opravljate nekaj več kot osnovno nalogo ali želite poklicati druge metode, uporabite običajno funkcijo. Lambde so odlične za enkratne, anonimne funkcije, vendar morajo imeti samo en izraz. Če je vaša lambda videti kot regularni izraz, je verjetno čas, da se preoblikujete v namensko metodo.

Za več nasvetov preverite naš vodnik po objektno usmerjenem programiranju v Pythonu in si oglejte naš vodnik s pogostimi vprašanji za začetnike Pythona.

Deliti Deliti Cvrkutati E-naslov 3 načini, kako preveriti, ali je e -pošta resnična ali lažna

Če ste prejeli e -poštno sporočilo, ki je videti nekoliko dvomljivo, je vedno najbolje preveriti njegovo pristnost. Tu so trije načini, kako ugotoviti, ali je e -poštno sporočilo resnično.

Preberite Naprej
Sorodne teme
  • Programiranje
  • Python
  • Vadnice za kodiranje
O avtorju Joe Coburn(136 objavljenih člankov)

Joe je diplomiral iz računalništva na Univerzi v Lincolnu v Veliki Britaniji. Je poklicni razvijalec programske opreme in ko ne leti z brezpilotnimi letali ali ne piše glasbe, ga pogosto najdejo pri fotografiranju ali ustvarjanju videoposnetkov.

Več od Joea Coburna

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e -knjige in ekskluzivne ponudbe!

Kliknite tukaj, če se želite naročiti