2017-01-16 6 views
-2

Ich habe einige Schwierigkeiten zu verstehen, wie verschachtelte einzelne Zeilen für Schleifen arbeiten. Hier ein Beispiel:Single Line Verschachtelte For-Schleifen in Python

Ich habe diesen Code:

NewArray = np.array([ get_position(i, size-1, t) for i in range(0, size)]) 

und ich versuche, dies zu umschreiben:

for i in range(0,size): 
     NewArray = np.array([ get_position(i, size-1, t)]) 

Aber ich bin immer verschiedene Ausgänge, so vermute ich, Hier ist ein logischer Fehler.

Könnten Sie das Problem hinweisen?

Danke

Antwort

0

Es ist, weil der erste erstellt ein numpy Array mit all Ihren Werten (Sie erstellen alle Werte, weil Sie eine list comprehension verwenden) und die zweite erstellt ein neues Array mit dem letzten Wert jeder Iteration (und es verwirft das Array erstellt in der letzten Iteration, weil Sie den gleichen Namen wiederverwenden).

Sie konnten die zweite umschreiben als:

lst = [] 
for i in range(0,size): 
    lst.append(get_position(i, size-1, t)) 
NewArray = np.array(lst) 

, die das gleiche Ergebnis wie die erste Operation geben sollte.

0

In der zunächst eine Reihe von size Länge erstellen. In den zweiten wiederholen Sie (size mal) 1 eine Reihe von Länge erstellen.

Verwandte Themen