Wende eine Liste von Python-Funktionen in der richtigen Reihenfolge an

9

Ich habe einen Eingabewert val und eine Liste von Funktionen, die in der Reihenfolge angewendet werden sollen:

%Vor%

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: Ссылка .

    
Viet 24.08.2016, 12:29
quelle

2 Antworten

18

Verwenden Sie die Funktion reduce() :

%Vor%

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%     
Martijn Pieters 24.08.2016, 12:31
quelle
2

MartijnPieters Antwort ist ausgezeichnet. Die einzige Sache, die ich hinzufügen würde, ist, dass dies Funktionszusammensetzung

genannt wird

Wenn Sie diesen Generika Namen geben, können Sie sie bei Bedarf verwenden

%Vor%     
user633183 24.08.2016 17:55
quelle