Ich habe einen Eingabewert val
und eine Liste von Funktionen, die in der Reihenfolge angewendet werden sollen:
Wie man sich elegant bewirbt und nicht schreibt
%Vor%und auch nicht für for-Schleife:
%Vor%Danke Martijn für die tolle Antwort. Es gibt einige Lektüre, die ich gefunden habe: Ссылка .
Verwenden Sie die Funktion reduce()
:
reduce()
wendet das erste Argument, ein aufrufbares Element, auf jedes Element an, das aus dem zweiten Argument stammt, plus das bisher akkumulierte Ergebnis (als (result, element)
). Das dritte Argument ist ein Startwert (das erste Element von funcs
würde sonst verwendet werden).
In Python 3 wurde die integrierte Funktion in die functools.reduce()
location ; Für die Abwärtskompatibilität ist dieselbe Referenz in Python 2.6 und höher verfügbar.
Andere Sprachen nennen das falten .
Wenn Sie Zwischenergebnisse für jede Funktion benötigen, verwenden Sie %. co_de% (nur ab Python 3.3 für eine Version, die ein Funktionsargument akzeptiert):
%Vor%MartijnPieters Antwort ist ausgezeichnet. Die einzige Sache, die ich hinzufügen würde, ist, dass dies Funktionszusammensetzung
genannt wirdWenn Sie diesen Generika Namen geben, können Sie sie bei Bedarf verwenden
%Vor%Tags und Links python functional-programming