volgend hoofdstuk: List Comprehension
Lambda, filter, reduce and map
Lambda Operator
sommigen vinden het leuk, anderen haten het en velen zijn bang voor de lambda operator. We zijn ervan overtuigd dat u het leuk zult vinden, wanneer u klaar bent met dit hoofdstuk van onze tutorial., Zo niet, dan kun je alles leren over “List Comprehensions”, Guido van Rossums prefereerde manier om het te doen, omdat hij niet van Lambda, kaart, filter en verminderen houdt.
de lambda-operator of lambda-functie is een manier om kleine anonieme functies te creëren, dat wil zeggen functies zonder naam. Deze functies zijn wegwerpfuncties, dat wil zeggen ze zijn gewoon nodig waar ze zijn gemaakt.Lambda functies worden voornamelijk gebruikt in combinatie met de functies filter(), map() en reduce().De lambda functie werd toegevoegd aan Python als gevolg van de vraag van Lisp programmeurs.,
De algemene syntaxis van een lambda functie is vrij eenvoudig:
lambda argument_list: expression
de lijst met argumenten bestaat uit een door komma ‘ s gescheiden lijst van argumenten en de expression is een rekenkundige uitdrukking die deze argumenten gebruikt. U kunt de functie toewijzen aan een variabele om het een naam te geven.
het volgende voorbeeld van een lambda-functie geeft de som van de twee argumenten terug:
>>> f = lambda x, y : x + y>>> f(1,1)2
de functie map ()
het voordeel van de lambda-operator kan worden gezien wanneer deze wordt gebruikt in combinatie met de functie map ().,
map () is een functie met twee argumenten:
r = map(func, seq)
het eerste argument func is de naam van een functie en het tweede een reeks (bijvoorbeeld een lijst) seq. map () past de functie func toe op alle elementen van de sequence seq. Het geeft een nieuwe lijst met de elementen veranderd door funcIn het voorbeeld hierboven we hebben niet gebruikt lambda. Door lambda te gebruiken, hadden we de functies fahrenheit() en celsius () niet hoeven te definiëren en te benoemen. U kunt dit zien in de volgende interactieve sessie:map () kan worden toegepast op meer dan één lijst. De lijsten moeten dezelfde lengte hebben., kaart (met) applyits lambda functie van de elementen van de argumenten, dat wil zeggen het eerste heeft betrekking op de elementen met de 0th index, en vervolgens naar de elementen met de 1e-index tot de n-de index wordt bereikt:
>>> 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)
kunnen We zien in het bovenstaande voorbeeld dat de parameter x krijgt haar waarden uit de lijst a, terwijl y getsits waarden van b en z uit de lijst c.
Filtering
De functie filter(functie, lijst) biedt een elegante manier om te filteren uit alle elementen van een lijst,waarvoor de functie geeft True terug.
Het functiefilter (f, l) heeft als eerste argument een functie f nodig., f geeft een Booleaanse waarde terug, d.w.z. eitherTrue of False. Deze functie zal worden toegepast op elk element van de lijst l. alleen als f waar retourneert zal het element van de lijst worden opgenomen in de resultatenlijst.
een lijst verkleinen
de functie reduce (func, seq) past continu de functie func () toe op de sequence seq. Het retourneert een enkele waarde.,
Als seq = , bellen verminderen(func, seq) werkt als volgt:
We illustreren dit proces in het volgende voorbeeld:
>>> reduce(lambda x,y: x+y, )113
Het volgende diagram toont de tussenliggende stappen van de berekening:
Voorbeelden van vermindering van()
Bepalen van het maximum van een lijst van numerieke waarden door gebruik te verminderen:
>>> f = lambda a,b: a if (a > b) else b>>> reduce(f, )102>>>
Berekenen van de som van de getallen van 1 tot 100:
>>> reduce(lambda x, y: x+y, range(1,101))5050
het Volgende Hoofdstuk: Lijst-Comprehensie