Питхон пружа многе уграђене функције које су унапред дефинисане и које крајњи корисник може користити само позивањем. Ове функције не само да олакшавају рад програмера већ и стварају стандардно окружење за кодирање. У овом чланку ћете научити о три тако импресивне функције, а то су мап (), филтрирање и смањење () ин .
писање тумача у јави
Пре него што кренемо напред, погледајмо садржај:
- Шта су функције мапирања, филтрирања и смањења у Питхону?
- Коришћење кориснички дефинисаних и ламбда функција у оквиру:
- Користећи функције мап (), филтрирајте () и редуце () заједно
Па кренимо. :)
Шта су функције мап (), филтер () и редуце () у Питхону?
Као што је раније поменуто, уграђени су мап (), филтер () и редуце () Питхон-а. Ове функције омогућавају функционални програмски аспект . У функционалном програмирању, прослеђени аргументи су једини фактори који одлучују о резултату. Ове функције могу узети било коју другу функцију као параметар, а могу се испоручити и другим функцијама као параметре. Дакле, хајде да сада дубље погледамо сваку од ових функција.
Функција мап ():
Функција мап () је врста вишег реда. Као што је раније поменуто, ова функција узима другу функцију као параметар заједно са низом итерабила и враћа излаз након примене функције на сваки итерабил присутан у секвенци. Његова синтакса је следећа:
СИНТАКСА:
мапа (функција, итераблес)
Овде функција дефинише израз који се заузврат примењује на итерабле. Функција мапе може да узима и функције које дефинише корисник ламбда функције као параметар.
Коришћење кориснички дефинисаних и Ламбда функција у оквиру:
Кориснички дефинисане функције у мапи ():
Функција мап () може узимати функције које дефинишу корисници као параметре. Параметре ових функција поставља искључиво корисник или програмер. На пример:
ПРИМЕР:
деф невфунц (а): врати а * а к = мап (невфунц, (1,2,3,4)) #к је објект мапе принт (к) принт (сет (к))
ИЗЛАЗ:
{16, 1, 4, 9}
Као што видите, к је објект мапе. Следећи део приказује функцију мапе која узима невфунц () као свој параметар, а затим примењује а * а на све итерабле. Као резултат тога, вредности свих итерабилних датотека се множе и враћају.
БЕЛЕШКА: Излаз није у реду према вредностима итераблеа јер сам користио функцију сет (). Такође можете да користите функције лист () или тупле (), на пример:
ПРИМЕР:
деф невфунц (а): врати а * а к = мап (невфунц, (1,2,3,4)) #к је објект мапе принт (к) принт (лист (к))
ИЗЛАЗ:
[1, 4, 9, 16]
Такође можете проследити више од једне листе параметара. На пример:
ПРИМЕР:
деф фунц (а, б): врати а + б а = мап (фунц, [2, 4, 5], [1,2,3]) принт (а) принт (тупле (а))
ИЗЛАЗ:
(3, 6, 8)
Сада да видимо како можете да користите ламбда функције у оквиру функције мап ().
Ламбда функције у мапи ():
Ламбда функције су функције које имају било које име. Ове функције се често испоручују као параметри другим функцијама. Покушајмо сада да уградимо ламбда функције у функцију мап (). Размотрите следећи пример:
ПРИМЕР:
туп = (5, 7, 22, 97, 54, 62, 77, 23, 73, 61) невтупле = тупле (мапа (ламбда к: к + 3, туп)) принт (невтупле)
ИЗЛАЗ:
(8, 10, 25, 100, 57, 65, 80, 26, 76, 64)
Горњи излаз је резултат примене ламбда израза (к + 3) на сваку ставку присутну у корпици.
Функција филтер ():
Функција филтер () користи се за стварање излазне листе која се састоји од вредности за које функција враћа тачно. Синтакса је следећа:
СИНТАКСА:
филтер (функција, итераблес)
Баш као и мап (), ова функција се може користити, такође може узети као параметар функције које дефинишу корисник, као и ламбда функције.
ПРИМЕР:
деф фунц (к): ако је к> = 3: ретурн к и = филтер (фунц, (1,2,3,4)) принт (и) принт (лист (и))
ИЗЛАЗ:
[3. 4]
Као што видите, и је објекат филтера, а листа је листа вредности које су тачне за услов (к> = 3).
Коришћење ламбда у филтеру ():
Ламбда функција која се користи као параметар заправо дефинише услов који треба проверити. На пример:
ПРИМЕР:
и = филтер (ламбда к: (к> = 3), (1,2,3,4)) испис (листа (и))
ИЗЛАЗ: [3. 4]
Горњи код даје исти излаз као и претходна функција.
Функција смањивања ():
Функција редуце (), како назив описује, примењује дату функцију на итерабле и враћа једну вредност.
Синтакса ове функције је следећа:
СИНТАКСА:
смањи (функција, итерабле)
Функција овде дефинише који израз треба применити на итерабле. Ову функцију треба увести из фунцтоолс-а модул . На пример:
ПРИМЕР:
из фунцтоолс увоза смањити смањити (ламбда а, б: а + б, [23,21,45,98])
ИЗЛАЗ: 187
У горњем примеру, функција редукције узастопно додаје сваки итерабил присутан на листи и враћа један излаз.
Функције мап (), филтер () и редуце () у Питхону могу се користити једна уз другу.
Користећи функције мап (), филтрирајте () и редуце () заједно:
Када то учините, унутрашње функције се прво решавају, а затим спољне функције делују на излазу унутрашњих функција.
Покушајмо прво да проследимо функцију филтер () као параметар функцији мап ().
Коришћење филтера () у мапи ():
Код дат у наставку прво проверава да ли је услов (к> = 3) тачан за итерабле. Затим се излаз мапира помоћу функције мап ().
ПРИМЕР:
ц = мапа (ламбда к: к + к, филтрирај (ламбда к: (к> = 3), (1,2,3,4))) испис (листа (ц))
ИЗЛАЗ: [6, 8]
Ако из дате корпице филтрирате целе бројеве веће или једнаке 3, као резултат добићете [3,4]. Онда ако ово мапирате користећи (к + к) услов, добићете [6,8], што је излаз.
Коришћење мапе () у филтеру ():
Када користите функцију мап () у функцији филтер (), итерабилима прво управља функција мап, а затим се на њих примењује услов филтер ().
ПРИМЕР:
ц = филтер (ламбда к: (к> = 3), мапа (ламбда к: к + к, (1,2,3,4))) # ламбда к: (к> = 3) испис (листа (ц) )
ИЗЛАЗ: [4, 6, 8]
Коришћење мапе () и филтера () у оквиру смањења ():
Излаз унутрашњих функција смањује се у складу са условом који се даје функцији смањити ().
ПРИМЕР:
д = смањи (ламбда к, и: к + и, мапа (ламбда к: к + к, филтер (ламбда к: (к> = 3), (1,2,3,4)))) испис (д)
ИЗЛАЗ: 14
Излаз је резултат [6,8] који је резултат унутрашњих функција мап () и филтер ().
Овим смо дошли до краја овог чланка на мап (), филтер () и редуцирању функција у Питхону. Надам се да сте све јасно разумели. Обавезно вежбајте што је више могуће и вратите своје искуство.
Имате питање за нас? Молимо вас да га спомињете у одељку за коментаре овог блога „мап (), филтер () и редуце () функције у Питхону“), а јавићемо вам се што је пре могуће.
Да бисте стекли детаљно знање о Питхону, заједно са разним апликацијама, можете се пријавити за уживо са 24/7 подршком и доживотним приступом.