itertools.chain um eine Iter-Liste zu verketten?

8
%Vor%

Dies funktioniert, um die Kombinationen zu drucken.

%Vor%

Aber das:

%Vor%

nicht, es wird ausgedruckt

%Vor%

Ich muss den Code neu schreiben, damit er wie gewünscht funktioniert.

%Vor%

Hier ist meine Frage:

%Vor%

Was ist der Unterschied zwischen ihnen? Laut Dokumentation Das itertools.chain macht:

%Vor%

Also, warum funktioniert itertools.chain(iter, iter, iter) auch hier?
Bedeutet es iter, iter, iter = *(iter, iter, iter) ?

    
user478514 08.03.2011, 06:37
quelle

2 Antworten

3
  

bedeutet es iter, iter, iter = * (iter, iter, iter)?

Nicht alleine. Das Entpacken von Argumenten funktioniert nur beim Aufruf einer Funktion, daher sind die folgenden beiden Aufrufe äquivalent:

%Vor%

Aber *[1,2,3] wird nicht kompiliert, es sei denn, es ist Teil eines Anrufs. Sie können normale (Positions-) Argumente mit entpackten Argumenten mischen:

%Vor%

also entspricht das obige auch den vorherigen zwei Aufrufen.

    
Rafał Dowgird 08.03.2011 08:48
quelle

Tags und Links