Neste Kapittel: Liste Forståelse
Lambda, filter, redusere og kart
Lambda Operatør
Noen liker det, andre hater det, og mange er redd for lambda-operatør. Vi er sikre på at du vil likeit, når du er ferdig med dette kapittel av vår tutorial., Hvis ikke, kan du lære alt om «List Comprehensions», Guido van Rossums foretrukne måten å gjøre det på, becausehe liker ikke Lambda, map, filter og reduce heller.
lambda operatør eller lambda-funksjonen er en måte å lage små anonyme funksjoner, dvs. funksjoner uten et navn. Disse funksjonene er-og-kast-funksjoner, dvs. de er bare nødvendig der hvor det har blitt opprettet.Lambda funksjoner er hovedsakelig brukt i kombinasjon med funksjoner filter(), kart() og redusere().Lambda-funksjonen ble lagt til Python på grunn av etterspørselen fra Lisp programmerere.,
generelle syntaksen for en lambda-funksjonen er ganske enkelt:
lambda argument_list: uttrykk
argumentet listen består av en komma-separert liste av argumenter og expressionis et aritmetisk uttrykk ved hjelp av disse argumentene. Du kan tilordne en funksjon som en variabel for å gi det et navn.
følgende eksempel på en lambda-funksjonen returnerer summen av de to argumenter:
>>> f = lambda x, y : x + y>>> f(1,1)2
kartet () – Funksjonen
fordelen av lambda operatøren kan sees når den brukes i kombinasjon med kart () – funksjonen.,
kart() er en funksjon med to argumenter:
r = map(func, seq)
Det første argumentet func er navnet på en funksjon, og den andre en sekvens (f.eks. en liste) seq. kart() gjelder funksjonen func til alle elementene ofthe sekvens seq. Den returnerer en ny liste med elementer endret av funcIn eksempelet ovenfor, hvor vi ikke har brukt lambda. Ved hjelp av lambda, vi ville ikke ha hatt til å definere og navngi funksjoner fahrenheit() og celsius(). Du kan se dette i følgende interaktiv sesjon:kart() kan brukes til mer enn én liste. Listene ha samme lengde., kart() vil applyits lambda-funksjonen til elementer av argumentet lister, dvs. det første gjelder elementer med 0th indeks, deretter til elementene med 1. indeksen til den n-te-indeksen er nådd:
>>> 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)
Vi kan se i eksempelet ovenfor, at parameteren x får sine verdier fra en liste, mens y getsits verdier fra b og z fra listen c.
Filtrering
funksjonen filter(funksjon), list (liste) tilbyr en elegant måte å filtrere ut alle elementene i en liste,som funksjonen returnerer True.
funksjonen filter(f,l) behov for en funksjon f som første argument., f returnerer en Boolsk verdi, dvs. eitherTrue eller Usant. Denne funksjonen vil bli brukt til hvert element i listen l. Bare hvis f returnerer True, vil elementet på listen inkluderes i resultat-liste.
å Redusere en Liste
funksjonen til å redusere(func, seq) kontinuerlig gjelder funksjonen func() til sekvensen seq. Den returnerer asingle verdi.,
Hvis seq = , ringer redusere(func, seq) fungerer som dette:
Vi illustrere denne prosessen i følgende eksempel:
>>> reduce(lambda x,y: x+y, )113
følgende diagram viser Den mellomliggende trinn i utregningen:
Eksempler på redusere()
å Bestemme den maksimale av en liste med numeriske verdier ved å bruke redusere:
>>> f = lambda a,b: a if (a > b) else b>>> reduce(f, )102>>>
Beregne summen av tallene fra 1 til 100:
>>> reduce(lambda x, y: x+y, range(1,101))5050
Neste Kapittel: Liste Forståelse