Мапирање, филтрирање и смањење функција у Питхону: Све што треба да знате



Научите шта су функције мап (), филтер () и редуце () у Питхону. Такође знате како да их користите са ламбда и кориснички дефинисаним функцијама, као и међусобно.

Питхон пружа многе уграђене функције које су унапред дефинисане и које крајњи корисник може користити само позивањем. Ове функције не само да олакшавају рад програмера већ и стварају стандардно окружење за кодирање. У овом чланку ћете научити о три тако импресивне функције, а то су мап (), филтрирање и смањење () ин .

писање тумача у јави

Пре него што кренемо напред, погледајмо садржај:





Па кренимо. :)

Шта су функције мап (), филтер () и редуце () у Питхону?

Као што је раније поменуто, уграђени су мап (), филтер () и редуце () Питхон-а. Ове функције омогућавају функционални програмски аспект . У функционалном програмирању, прослеђени аргументи су једини фактори који одлучују о резултату. Ове функције могу узети било коју другу функцију као параметар, а могу се испоручити и другим функцијама као параметре. Дакле, хајде да сада дубље погледамо сваку од ових функција.



Функција мап ():

Функција мап () је врста вишег реда. Као што је раније поменуто, ова функција узима другу функцију као параметар заједно са низом итерабила и враћа излаз након примене функције на сваки итерабил присутан у секвенци. Његова синтакса је следећа:

СИНТАКСА:

мапа (функција, итераблес)



Овде функција дефинише израз који се заузврат примењује на итерабле. Функција мапе може да узима и функције које дефинише корисник ламбда функције као параметар.

Коришћење кориснички дефинисаних и Ламбда функција у оквиру:

Кориснички дефинисане функције у мапи ():

Функција мап () може узимати функције које дефинишу корисници као параметре. Параметре ових функција поставља искључиво корисник или програмер. На пример:

ПРИМЕР:

деф невфунц (а): врати а * а к = мап (невфунц, (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 подршком и доживотним приступом.