Következő Fejezet: a Lista Megértés
Lambda, szűrő, csökkenti majd a térkép
Lambda Operátor
Valami tetszik, mások utálják sokan félnek a lambda operátor. Biztosak vagyunk benne, hogy tetszeni fogez, amikor befejezte ezt a fejezetet a bemutató., Ha nem, akkor mindent megtudhat a “Listafelfogásokról”, Guido van Rossums inkább a módját választotta, mert nem szereti a Lambdát, a térképet, a szűrőt és a redukciót sem.
a lambda operátor vagy a lambda funkció egy módja annak, hogy kis névtelen funkciókat hozzon létre, azaz név nélküli funkciókat. Ezek a funkciók eldobott funkciók, azaz csak ott szükségesek, ahol létrehozták őket.A Lambda funkciókat elsősorban a függvényszűrővel(), térképpel() és reduce () kombinációban használják.A lambda funkciót a Python-hoz adták a Lisp programozók igénye miatt.,
a lambda függvény általános szintaxisa meglehetősen egyszerű:
lambda argument_list: expression
az argumentumlista az argumentumok vesszővel elválasztott listájából és az expresszióból állegy aritmetikai kifejezés ezen argumentumok felhasználásával. A függvényt egy változóhoz rendelheti, hogy nevet adjon neki.
a lambda függvény következő példája két Argumentumának összegét adja vissza:
>>> f = lambda x, y : x + y>>> f(1,1)2
a térkép () függvény
a lambda operátor előnye akkor látható, ha a map() funkcióval együtt használják.,
map () egy függvény két argumentummal:
r = map(func, seq)
az első argumentum func egy függvény neve, a második pedig egy szekvencia (pl. lista) seq. térkép () a func függvényt a seq szekvencia összes elemére alkalmazza. Visszaad egy új listát a funcIn által megváltoztatott elemekkela fenti példában nem használtuk a lambda-t. A lambda használatával nem kellett volna definiálnunk és megneveznünk a fahrenheit() és celsius () függvényeket. Ezt a következő interaktív munkamenetben láthatja: a térkép() egynél több listára is alkalmazható. A listáknak azonos hosszúságúnak kell lenniük., a map() a lambda függvényt az argumentumlisták elemeire alkalmazza, azaz először a 0. indexű elemekre, majd az 1.indexű elemekre vonatkozik, amíg az n-edik index el nem éri:
>>> a = >>> b = >>> c = >>> map(lambda x,y:x+y, a,b)>>> map(lambda x,y,z:x+y+z, a,b,c)>>> map(lambda x,y,z:x+y-z, a,b,c)
a fenti példában láthatjuk, hogy az x paraméter az a listából kapja meg értékeit,míg y a B és z értékeit a C listából kapja.
szűrés
A függvényszűrő(funkció, lista) elegáns módot kínál a lista összes elemének kiszűrésére, amelyre a funkció funkció true értéket ad vissza.
a függvényszűrőnek (f,l) első argumentumként F függvényre van szüksége., f egy logikai értéket ad vissza, azaz eitherTrue vagy False értéket. Ez a funkció a lista minden elemére vonatkozik l. csak akkor, ha az f true értéket ad vissza, a lista eleme szerepel az eredménylistában.
egy lista csökkentése
A függvény csökkentése (func, seq) folyamatosan alkalmazza a func () függvényt a seq szekvenciára. Ez egy értékként tér vissza.,
Ha seq = hívja csökkentése(func, seq) úgy működik, mint ez:
Mi szemléltetik ezt a folyamatot a következő példa:
>>> reduce(lambda x,y: x+y, )113
A következő ábra azt mutatja, hogy a köztes lépések a számítás:
Példák csökkentése()
Meghatározó legfeljebb egy listát a numerikus értékek használatával csökkenti:
>>> f = lambda a,b: a if (a > b) else b>>> reduce(f, )102>>>
Kiszámítása a számok összege 1-től 100-ig:
>>> reduce(lambda x, y: x+y, range(1,101))5050
Következő Fejezet: a Lista Megértés