Ano ang Mga Pag-andar ng Lambda at Paano Ito Magagamit?



Alamin ang mga pag-andar ng Python lambda kasama ang pagkakaiba sa pagitan ng mga normal na pag-andar at pag-andar ng lambda at kung paano ito magagamit sa filter (), mapa (), bawasan ().

Ang isang pangalan ay isang kombensiyon na ginagamit upang mag-refer o matugunan ang anumang nilalang. Halos lahat ng bagay sa paligid natin ay may pangalan. Ang mundo ng programa ay napupunta din alinsunod dito. Ngunit kinakailangan bang pangalanan ang lahat? O maaari kang magkaroon ng isang bagay na 'anonymous' lamang? Ang sagot ay oo. ' nagbibigay ng Mga Pag-andar ng Lambda, na kilala rin bilang Mga pagpapaandar na hindi nagpapakilala na sa katunayan ay walang pangalan. Kaya't magpatuloy tayo upang malaman ang tungkol sa mga 'Anonymous Mystery' ng Python, sa sumusunod na pagkakasunud-sunod.

Kaya't magsimula tayo :)





Bakit gumagamit ng Python Lambda Function?


Ang pangunahing layunin ng mga hindi nagpapakilalang pag-andar ay dumating sa larawan kapag kailangan mo ng ilang pag-andar nang isang beses lamang. Maaari silang malikha saan man sila kailangan. Dahil sa kadahilanang ito, ang Python Lambda Function ay kilala rin bilang mga function na itapon na ginagamit kasama ang iba pang mga paunang natukoy na pag-andar tulad ng filter (), mapa (), atbp. Ang mga pagpapaandar na ito ay makakatulong mabawasan ang bilang ng mga linya ng iyong code kapag inihambing sa normal .

Upang mapatunayan ito, magpatuloy tayo sa karagdagang at alamin ang tungkol sa mga pagpapaandar ng Python Lambda.



Ano ang Mga Pag-andar ng Python Lambda?


Ang mga pagpapaandar ng Python Lambda ay mga pagpapaandar na walang anumang pangalan. Kilala rin sila bilang mga hindi nagpapakilalang function o walang pangalan. Ang salitang 'lambda' ay hindi isang pangalan, ngunit ito ay isang keyword. Tinutukoy ng keyword na ang sumusunod na pagpapaandar ay hindi nagpapakilala.

Ngayong may kamalayan ka sa kung ano ang tinutukoy ng mga hindi nagpapakilalang pagpapaandar na ito, magpatuloy kaming lumipat upang makita kung paano mo isusulat ang mga pagpapaandar na Python Lambda na ito.

Paano isulat ang Lambda Function sa Python?

Ang isang pagpapaandar ng Lambda ay nilikha gamit ang lambda operator at ang syntax nito ay ang mga sumusunod:



SINTAX:

argumento ng lambda: pagpapahayag

Sawa pagpapaandar ng lambda maaaring magkaroon ng anumang bilang ng mga argumento ngunit kinakailangan lamang isang expression. Ang mga input o argumento ay maaaring magsimula sa 0 at umakyat sa anumang limitasyon. Tulad ng anumang iba pang mga pagpapaandar, perpektong pagmultahin ang pagkakaroon ng mga pag-andar ng lambda na walang mga input. Samakatuwid, maaari kang magkaroon ng mga pagpapaandar ng lambda sa alinman sa mga sumusunod na format:

HALIMBAWA:

lambda: 'Tukuyin ang layunin'

Dito, ang pag-andar ng lambda ay hindi kumukuha ng anumang mga argumento.

HALIMBAWA:

lambda aisa: 'Tukuyin ang paggamit ng aisa'

Dito, ang lambda ay kumukuha ng isang input na kung saan ay aisa.

paggamit ng charat sa java

Katulad nito, maaari kang magkaroon ng lambda aisa, sa2, sa3..ton.

Kumuha tayo ng ilang mga halimbawa upang maipakita ito:

HALIMBAWA 1:

a = lambda x: x * x print (a (3))

OUTPUT: 9

HALIMBAWA 2:

a = lambda x, y: x * y print (a (3,7))

OUTPUT: dalawampu't isa

Tulad ng nakikita mo, kumuha ako ng dalawang halimbawa dito. Ginagamit ng unang halimbawa ang pag-andar ng lambda na may isang expression lamang samantalang ang pangalawang halimbawa ay mayroong dalawang argumento na naipasa dito. Mangyaring tandaan na ang parehong mga pag-andar ay may isang solong expression na sinusundan ng mga argumento. Samakatuwid, ang mga pag-andar ng lambda ay hindi maaaring gamitin kung saan kailangan mo ng mga multi-line expression.

Sa kabilang banda, ang mga normal na pagpapaandar ng sawa ay maaaring tumagal ng anumang bilang ng mga pahayag sa kanilang mga kahulugan ng pag-andar.

Paano binabawasan ng mga pagpapaandar na Anonymous ang laki ng code?

Bago ihambing ang dami ng kinakailangang code, isulat muna natin ang syntax ng at ihambing ito sa mga pag-andar ng lambda na inilarawan nang mas maaga.

Ang anumang normal na pag-andar sa Python ay tinukoy gamit ang a def keyword tulad ng sumusunod:

SINTAX:

def function_name (mga parameter):
(mga) pahayag

Tulad ng nakikita mo, ang dami ng kinakailangang code para sa isang pag-andar ng lambda ay medyo mas mababa kaysa sa mga normal na pag-andar.

Isulat natin muli ang halimbawang kinuha namin kanina gamit ang normal na mga pag-andar ngayon.

HALIMBAWA:

def my_func (x): return x * x print (my_func (3))

OUTPUT: 9

Tulad ng nakikita mo, sa halimbawa sa itaas, kailangan namin ng isang pahayag sa pagbabalik sa loob ng my_func upang suriin ang halaga ng parisukat ng 3. Salungat, ang pag-andar ng lambda ay hindi gumagamit ng pahayag sa pagbabalik na ito, ngunit, ang katawan ng hindi nagpapakilalang pagpapaandar ay nakasulat sa parehong linya tulad ng pagpapaandar mismo, pagkatapos ng simbolong colon. Samakatuwid ang laki ng pagpapaandar ay mas maliit kaysa sa my_func.

Gayunpaman, ang pag-andar ng lambda sa mga halimbawa sa itaas, ay tinatawag na paggamit ng iba pa a. Ginagawa ito sapagkat ang mga pagpapaandar na ito ay walang pangalan at samakatuwid ay nangangailangan ng ilang pangalan na tatawagin. Ngunit, ang katotohanang ito ay maaaring mukhang nakalilito kung bakit gumamit ng mga walang pangalan na pag-andar kung kailangan mo talagang magtalaga ng ilang iba pang pangalan upang tawagan sila? At syempre, pagkatapos italaga ang pangalan na a sa aking pagpapaandar, hindi na ito mananatiling walang pangalan! Di ba

Ito ay isang lehitimong katanungan, ngunit ang punto ay, hindi ito ang tamang paraan ng paggamit ng mga hindi nagpapakilalang pagpapaandar na ito.

Ang mga hindi nagpapakilalang pag-andar ay pinakamahusay na ginagamit sa loob ng iba pa mga function na mas mataas ang order na maaaring gumamit ng ilang pag-andar bilang isang argumento o, ibalik ang isang pagpapaandar bilang output. Upang maipakita ito, magpatuloy muna tayo patungo sa susunod nating paksa.

Ang mga pag-andar ng Python Lambda sa loob ng mga pagpapaandar na tinukoy ng gumagamit:

Tulad ng nabanggit sa itaas, ang mga pagpapaandar ng lambda ay ginagamit sa loob ng iba pang mga pagpapaandar upang markahan ang pinakamahusay na bentahe.

Ang sumusunod na halimbawa ay binubuo ng new_func na isang normal na pagpapaandar ng sawa na tumatagal ng isang argument x. Ang argument na ito pagkatapos ay idinagdag sa ilang mga hindi kilalang argument y na kung saan ay ibinibigay sa pamamagitan ng pagpapaandar ng lambda.

HALIMBAWA:

def new_func (x): return (lambda y: x + y) t = new_func (3) u = new_func (2) print (t (3)) print (u (3))

OUTPUT:

6
5
Tulad ng nakikita mo, sa halimbawa sa itaas, ang pag-andar ng lambda na naroroon sa loob ng new_func ay tinatawag tuwing gagamitin namin ang new_func (). Sa bawat oras, maaari naming ipasa ang magkakahiwalay na halaga sa mga argumento.

Ngayon na nakita mo kung paano gumamit ng mga hindi nagpapakilalang pag-andar sa loob ng mga pag-andar na mas mataas ang pagkakasunud-sunod, magpatulong tayo ngayon upang maunawaan ang isa sa pinakatanyag nitong paggamit na nasa loob ng filter (), mapa () at bawasan ang () mga pamamaraan.

Paano gamitin ang Mga pagpapaandar na hindi nagpapakilala sa loob ng filter (), mapa () at bawasan ():

Mga hindi nagpapakilalang pag-andar sa loob filter ():

ruby sa riles ng tutorial sa website

filter ():

Ginagamit ang pamamaraang filter () upang salain ang mga naibigay na iterable (listahan, set, atbp) sa tulong ng isa pang pagpapaandar, naipasa bilang isang argument, upang subukan ang lahat ng mga elemento na totoo o mali.

Ang syntax ng pagpapaandar na ito ay:

SINTAX:

filter (pagpapaandar, umuulit)

Isaalang-alang ngayon ang sumusunod na halimbawa:

HALIMBAWA:

my_list = [2,3,4,5,6,7,8] new_list = list (filter (lambda a: (a / 3 == 2), my_list)) print (new_list)

OUTPUT: [6]

Dito, ang my_list ay isang listahan ng mga umuulit na halaga na ipinapasa sa pag-andar ng filter. Ang pagpapaandar na ito ay gumagamit ng pag-andar ng lambda upang suriin kung mayroong anumang mga halaga sa listahan, na magiging katumbas ng 2 kapag nahahati sa 3. Ang output ay binubuo ng isang listahan na nagbibigay-kasiyahan sa expression na naroroon sa loob ng hindi nagpapakilalang pagpapaandar.

mapa ():

Ang pagpapaandar ng mapa () sa Python ay isang pagpapaandar na naglalapat ng isang naibigay na pagpapaandar sa lahat ng mga iterable at nagbabalik ng isang bagong listahan.

SINTAX:

mapa (pagpapaandar, paulit-ulit)

Kumuha tayo ng isang halimbawa upang maipakita ang paggamit ng mga pagpapaandar ng lambda sa loob ng pagpapaandar ng mapa ():

HALIMBAWA:

my_list = [2,3,4,5,6,7,8] new_list = list (mapa (lambda a: (a / 3! = 2), li)) print (new_list)

OUTPUT:

kung paano baguhin ang doble sa int sa java

[Tama, totoo, totoo, totoo, mali, totoo, totoo]

Ipinapakita ng output sa itaas na, tuwing ang halaga ng mga iterable ay hindi katumbas ng 2 kapag hinati ng 3, ang resulta na ibabalik ay dapat na Totoo. Samakatuwid, para sa lahat ng mga elemento sa aking_list, nagbabalik ito ng totoo maliban sa halagang 6 kapag nagbago ang kundisyon sa Mali.

bawasan ():

Ang pagbawas () na pagpapaandar ay ginagamit upang maglapat ng ilang iba pang pagpapaandar sa isang listahan ng mga elemento na naipasa bilang isang parameter dito at sa wakas ay nagbabalik ng isang solong halaga.

Ang syntax ng pagpapaandar na ito ay ang mga sumusunod:

SINTAX:

bawasan (pagpapaandar, pagkakasunud-sunod)

HALIMBAWA:

mula sa functools import bawasan mabawasan (lambda a, b: a + b, [23,21,45,98])

Ang halimbawa sa itaas ay inilalarawan sa sumusunod na imahe:

bawasan-python lambda-edureka

OUTPUT: 187

Malinaw na ipinapakita ng output na ang lahat ng mga elemento ng listahan ay patuloy na idinagdag upang ibalik ang pangwakas na resulta.

Sa pamamagitan nito, natapos na namin ang artikulong ito sa 'Python Lambda'. Inaasahan mong malinaw ka sa lahat ng naibahagi sa iyo. Tiyaking nagsasanay ka hangga't maaari at ibalik ang iyong karanasan.

May tanong ba sa amin? Mangyaring banggitin ito sa seksyon ng mga komento ng blog na 'Python Lambda' na ito at babalikan ka namin sa lalong madaling panahon.

Upang makakuha ng malalim na kaalaman sa Python kasama ang iba't ibang mga application nito, maaari kang magpatala nang live na may 24/7 na suporta at buhay na pag-access.