Kezdő útmutató a Python Lambda funkcióinak megértéséhez

Kezdő útmutató a Python Lambda funkcióinak megértéséhez

A Pythonban található lambdák az egyik leghasznosabb, legfontosabb és legérdekesebb funkció, amiről tudni kell. Sajnos őket is könnyű félreérteni és tévedni.





Ebben a cikkben mindent elmagyarázunk, amit tudnod kell ezekről a titokzatos funkciókról, azok használatáról és miért hasznosak.





Mielőtt belemerül ezekbe a gyakorlati példákba, érdemes beállítani egy Python virtuális környezetet. Ha nem is akarja ezt megtenni, akkor legalább próbálja ki ezeket a példákat interaktív online Python héjjal .





Mi a Lambda a Pythonban?

A lambda egyszerűen egy módja annak, hogy definiáljunk egy függvényt a Pythonban. Néha „lambda operátoroknak” vagy „lambda függvényeknek” nevezik őket.

Ha korábban már használta a Python programot, akkor valószínűleg a def kulcsszó, és eddig jól működött. Akkor miért van más módszer is ugyanezt tenni?



A különbség az, hogy a lambda függvények névtelenek. Vagyis olyan funkciókról van szó, amelyeket nem kell megnevezni. Kis, egyszeri funkciók létrehozására szolgálnak azokban az esetekben, amikor az „igazi” funkció túl nagy és terjedelmes lenne.

A lambdák egy függvényobjektumot adnak vissza, amelyet hozzá lehet rendelni egy változóhoz. A lambdáknak tetszőleges számú érve lehet, de csak egy kifejezésük lehet. A lambdákon belül nem hívhat más funkciókat.





A lambda függvények leggyakoribb használata az egyszerű egysoros függvényt igénylő kód, ahol túlzás lenne egy teljes normál függvény írása. Erről részletesebben az alábbiakban, a „Mi a helyzet a térképpel, szűréssel és csökkentéssel?” Részben foglalkozunk.

A Lambdas használata Pythonban

Mielőtt megvizsgálnánk a lambda függvényt, nézzünk egy szuper alapfunkciót, amelyet a „hagyományos” módon határoztak meg:





def add_five(number):
return number + 5

print(add_five(number=4))

Ez a funkció nagyon alapvető, de a lambdák illusztrálására szolgál. A tied lehet ennél összetettebb. Ez a függvény ötöt ad hozzá a számon keresztül átadott számokhoz szám paraméter.

Így néz ki lambda függvényként:

add_five = lambda number: number + 5

print(add_five(number=4))

Használat helyett def , a szó lambda használt. Nincs szükség zárójelekre, de az után következő szavakra lambda kulcsszavak paraméterként jönnek létre. A kettőspont a paraméterek és a kifejezés elválasztására szolgál. Ebben az esetben a kifejezés az szám + 5 .

Nincs szükség a Visszatérés kulcsszó --- a lambda ezt automatikusan elvégzi helyetted.

Így hozhat létre lambda függvényt két érvvel:

google drive a videót nem lehet lejátszani
add_numbers_and_five = lambda number1, number2: number1 + number2 + 5

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

Ha még mindig bizonytalan a lambdák kérdésében, akkor a következő szakasz belemerül, és segít meglátni a fényt.

Python lambdák térképpel, szűréssel és kicsinyítéssel

A Python alapkönyvtárának három metódusa van térkép , csökkenteni , és szűrő . Ezek a módszerek talán a legjobb indokok a lambda függvények használatára.

Az térkép A függvény két érvet vár: egy függvényt és egy listát. Ezt a funkciót átveszi, és a lista minden elemére alkalmazza, és a módosított elemek listáját térképi objektumként adja vissza. Az lista függvény segítségével a kapott térképobjektumot ismét listává alakíthatja.

Így használhatja a térképet lambda nélkül:

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

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

Ez a térkép funkció nagyon praktikus, de lehetne jobb is. az add_five függvény argumentumként kerül átadásra, de mi van akkor, ha nem akarja létrehozni a függvényt minden alkalommal, amikor térképet használ? Használhat lambdát is!

Így néz ki ugyanaz a kód, csak akkor, ha a funkciót lambda helyettesíti:

hogyan szerezhet be saját zárószűrőt
list1 = [2, 4, 6, 8]
print(list1)

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

Mint látható, az egész add_five funkcióra már nincs szükség. Ehelyett a lambda funkciót használják a dolgok rendben tartására.

A ... val szűrő funkció, a folyamat nagyjából ugyanaz. Szűrő függvényt vesz fel, és a lista minden elemére alkalmazza, és létrehozott egy új listát, amely csak azokat az elemeket tartalmazza, amelyek miatt a függvény True értéket adott vissza.

Először is, lambda nélkül:

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)

Nincs ezzel a kóddal semmi baj, de egy kicsit hosszú. Nézzük meg, hány sort távolíthat el a lambda:

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

A lambda függvény felváltotta az egész igényét nagyobb_ mint_ten_func ! És ezt öt egyszerű szóban meg is tette. Ezért a lambdák erőteljesek: csökkentik az egyszerű feladatok zűrzavarát.

Végül nézzük meg csökkenteni . A Reduce egy másik jó Python -funkció. Gördülő számítást alkalmaz a lista összes elemére. Ezt használhatja az összesített összeg összegzésére, vagy az összes szám szorzására:

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

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

Ezt a példát importálni kell csökkenteni tól functools modul, de ne aggódjon, a functools modul a Python magkönyvtár része.

A történet nagyjából ugyanaz egy lambdával, nincs szükség funkcióra:

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

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

Érdemes odafigyelni a Python Lambdas segítségével

Ezek a példák bemutatták, hogy a lambda függvények milyen egyszerűek a térkép, szűrés és kicsinyítés mellett a Python alapkönyvtárából. Ennek ellenére van néhány olyan alkalmazás, ahol a lambda funkciók nem segítenek.

Ha az alapfeladatnál többet csinál, vagy más módszereket szeretne meghívni, használjon normál funkciót. A lambdák nagyszerűek az egyszeri, névtelen funkciókhoz, de csak egyetlen kifejezést tartalmazhatnak. Ha a lambda rendszeres kifejezésnek tűnik, akkor valószínűleg ideje újrakezdeni egy dedikált módszert.

További tippekért nézze meg a mi oldalunkat útmutató a Python objektum-orientált programozásához és nézze meg a Python kezdőknek szóló GYIK -útmutatónkat.

Részvény Részvény Csipog Email 3 módszer annak ellenőrzésére, hogy az e -mail valódi vagy hamis

Ha olyan e -mailt kapott, amely kissé kétesnek tűnik, mindig a legjobb ellenőrizni annak hitelességét. Íme három módszer annak megállapítására, hogy egy e -mail valódi -e.

Olvassa tovább
Kapcsolódó témák
  • Programozás
  • Piton
  • Kódolási oktatóanyagok
A szerzőről Joe Coburn(136 megjelent cikk)

Joe az Egyesült Királyságban, a Lincoln Egyetemen végzett informatikából. Professzionális szoftverfejlesztő, és amikor nem repül drónokkal és nem ír zenét, gyakran előfordul, hogy fényképeket készít vagy videókat készít.

Joe Coburn további alkotásai

Iratkozzon fel hírlevelünkre

Csatlakozz hírlevelünkhöz, ahol technikai tippeket, értékeléseket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide