О Ламбда функцијама
Ламбда функције у питхону су неименоване и анонимне функције које се могу користити за стварање израза који враћају неку врсту вредности на основу прорачуна имплементираних у самом изразу. Логика у овим ламбда функцијама може се написати сажето, обично нешто што лако стане у један ред. Понекад их је тешко прочитати, нарочито ако људи нису добро упућени у Ламбда функције. Међутим, они имају предност држања ствари заједно у блоковима кода и помажу у бољем разумевању контекста.
Синтакса Ламбда функција
Синтакса Ламбда функције у Питхону изгледа овако:
помножите = ламбда к, и: к * иПрви део ламбда израза, непосредно пре симбола двотачке (:), узима параметре као аргументе. Други део, након симбола двотачке, мора бити повратна вредност. Ова повратна вредност може бити израз и са логиком. У ствари, Ламбда функције се користе готово све време за примену неке логике на достављеним аргументима, а затим за враћање коначног резултата.
Да бисте тестирали горе наведену Ламбда функцију, можете користити следећу изјаву:
испис (множење (3, 4))Требали бисте добити следећи излаз:
12Иста ламбда функција би се иначе написала на следећи начин:
деф мултипли (к, и):повратак к * и
испис (множење (3, 4))
Оба узорка кода ће дати исти излаз. У наставку су објашњени још неки примери Ламбда функција.
Ламбда функције предати као аргументе
Можете користити Ламбда функције за израчун и испоруку враћене вредности као аргументе другим функцијама. Метод сортирања у Питхону узима аргумент „кључ“ где можете одредити функцију која се може позвати и која узима један аргумент у сврхе сортирања. Уместо да прво дефинишете засебну функцију која враћа кључ, а затим наведете референцу на аргумент, можете једноставно користити Ламбда функцију.
воће = [(2, 'јабуке'), (4, 'поморанџе'), (3, 'банане')]воће.сортирање (кључ = ламбда елемент: елемент [0])
штампа (воће)
Горњи код ће дати следећи излаз:
[(2, 'јабуке'), (3, 'банане'), (4, 'поморанџе')]Можете користити ламбда у било којој таквој методи која узима функцију која се може позвати као аргумент (на пример, метода филтрирања).
Користите Ламбда функције у Разумевању списка
Можете да користите Ламбду у разумевању листе и листа ће бити правилно креирана од вредности које враћа израз Ламбда.
гет_скуаре = ламбда а: а * аквадрата = [гет_скуаре (к) за к у опсегу (5)]
штампа (квадратићи)
Ово ће произвести следећи резултат:
[0, 1, 4, 9, 16]Горњи узорак кода такође може бити написан на следећи начин где се „к“ даје ламбда функцији као аргумент:
квадрати = = (ламбда к: к * к) (к) за к у опсегу (5)]штампа (квадратићи)
Овај пример само илуструје употребу Ламбда функција у разумевању листе. Иначе можете лако израчунати квадрате користећи минималну изјаву о разумевању листе:
испис ([к * к за к у опсегу (5)])Користите Ламбда функције у Питхон речницима
Узорак кода у наставку илуструје Ламбда функције које се користе у паровима кључ / вредност у Питхон речнику. Једном дефиниране, ове функције можете позвати било када.
израчунати = 'збир': ламбда а, б: а + б, 'разлика': ламбда а, б: а - биспис (израчунај ['збир'] (4, 5))
испис (израчунај ['разлику'] (4, 5))
Након покретања горњег кода требали бисте добити следећи излаз:
9-1
Закључак
Ламбда функције пружају одличан начин за писање стенографских израза и одржавање ствари уредном и организованом без непотребног стварања пуно именованих функција. Међутим, прекомерно коришћење Ламбда функција може отежати читање кода, посебно када код гледа више особа. Боље је имати читљивији код (чак и ако је опширан) него имати нешто што је можда мало тешко разумети на поновним посетама.