Edellisessä Luvussa: Säännöllisiä Lausekkeita, Advanced
Seuraava Luku: Luettelo Ymmärtäminen

Lambda, suodatin, vähentää ja kartta

Lambda-Operaattori

Jotkut pitävät siitä, toiset vihaavat sitä ja monet pelkäävät lambda-operaattori. Olemme varmoja, että voit nykyisin, kun olet lopettanut tämän luvun meidän opetusohjelma., Jos ei, voit oppia kaikki noin ”Lista Käsityksiä”, Guido van Rossums edullinen tapa tehdä se, koskahän ei pidä Lambda, map, filter ja vähentää joko.
lambda-operaattori tai lambda toiminto on tapa luoda pieniä nimettömiä toimintoja, eli toimintoja ilman nimeä. Nämä toiminnot ovat heittofunktioita eli niitä tarvitaan vain sinne, missä ne on luotu.Lambda-toimintoja käytetään pääasiassa yhdessä funktiosuodattimen (), kartan () ja pelkistimen () kanssa.Lambda-ominaisuus lisättiin Pythoniin Lisp-ohjelmoijien kysynnän vuoksi.,
yleinen syntaksi on lambda-toiminto on varsin yksinkertainen:
lambda argument_list: ilmaus
argumentti lista koostuu pilkuilla erotettu luettelo argumentteja ja expressionis aritmeettinen lauseke käyttämällä näitä argumentteja. Voit määrittää toiminnon muuttujan antaa sille nimen.
seuraavassa esimerkki lambda-funktio palauttaa summa sen kaksi argumenttia:

>>> f = lambda x, y : x + y>>> f(1,1)2

map () – Funktio

etu lambda-operaattori voidaan nähdä, kun sitä käytetään yhdessä kartan () – funktio.,
map() on funktio, jolla on kaksi argumenttia:

r = map(func, seq)

ensimmäinen argumentti func on funktion nimi ja toinen sekvenssi (esim. lista) sitä seuraavat kohdat. map () soveltaa funktiota func kaikkiin sekvenssi seq: n osiin. Se palauttaa uuden listan elementtejä muuttunut funcIn esimerkki yllä Emme ole käyttäneet lambda. Käyttämällä lambda, meidän ei olisi tarvinnut määritellä ja nimetä toimintoja fahrenheit () ja celsius (). Näet tämän seuraavassa interaktiivisessa istunnossa: karttaa() voi käyttää useammassa kuin yhdessä luettelossa. Listoilla on oltava sama pituus., kartta() on applyits lambda toiminto elementtejä argumentti luettelot, eli se ensimmäinen koskee elementtien 0th indeksi, sitten elementit 1 indeksi, kunnes n-th indeksi on saavutettu:

>>> 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)

Voimme nähdä yllä olevassa esimerkissä, että parametri x saa sen arvojen luettelosta, kun taas y getsits arvot b-ja z-luettelosta c.

Suodatus

toiminto suodatin(toiminto, lista) tarjoaa tyylikäs tapa suodattaa pois kaikki listan alkiot,jotka funktio palauttaa arvon True.
funktiosuodatin (f,l) tarvitsee ensimmäisenä argumenttinaan funktion f., f palauttaa Boolisen arvon eli eithertruen tai False. Tämä toiminto otetaan käyttöön joka osa luettelon l. Vain jos f palauttaa True, on osa luettelo sisällytetään tuloslistalla.

luettelon pienentäminen

funktion pelkistys (func, seq) soveltaa funktiota func () jatkuvasti sekvenssiin seq. Se palauttaa yhden arvon.,
Jos seq = , soittamalla vähentää(func, sitä seuraavat kohdat) toimii kuten tämä:
Olemme havainnollistaa tätä prosessia seuraavassa esimerkissä:

>>> reduce(lambda x,y: x+y, )113

seuraavassa kaaviossa esitetään välivaiheet laskenta:

Esimerkkejä vähentää()

Määrittämiseksi enintään luettelo numeeriset arvot käyttämällä vähentää:

>>> f = lambda a,b: a if (a > b) else b>>> reduce(f, )102>>> 

Lasketaan summan numerot 1 100:

>>> reduce(lambda x, y: x+y, range(1,101))5050

Edellisessä Luvussa: Säännöllisiä Lausekkeita, Advanced
Seuraava Luku: Luettelo Ymmärtäminen

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *