Python-Liste Anhängen
Möchte ich zum speichern der Zwischenwerte von Variablen in Python. Diese variable wurde in einer Schleife. Wenn ich versuche, dies zu tun mit list.append
Befehl aus, aktualisiert Sie jeden Wert in der Liste mit dem neuen Wert der Variablen. Wie sollte ich es tun ?
while (step < maxstep):
for i in range(100):
x = a*b*c
f1 += x
f2.append(f1)
print f2
raw_input('<<')
step += 1
Erwartete Ausgabe
[array([-2.03,-4.13])]
<<
[array([-2.03,-4.13]),array([-3.14,-5.34])]
Gedruckten Ausgabe
[array([-2.03,-4.13])]
<<
[array([-3.14,-5.34]),array([-3.14,-5.34])]
Ist es eine andere Art und Weise zu bekommen, was ich will in python?
Was ist die Bedeutung des
X ist aktualisiert, basierend auf einer Funktion , m ist der range für die for-Schleife, die while-Schleife läuft für eine beliebige Anzahl von Schritten
Aber jetzt bin ich verwirrt, ich sehe, Sie haben
Das ist ein Tippfehler 🙂 vielen Dank
condition
und m
? Was ist fi
? Was ist f()
?X ist aktualisiert, basierend auf einer Funktion , m ist der range für die for-Schleife, die while-Schleife läuft für eine beliebige Anzahl von Schritten
Aber jetzt bin ich verwirrt, ich sehe, Sie haben
f1
und fi
ist, dass ein Tippfehler in deinem code?Das ist ein Tippfehler 🙂 vielen Dank
InformationsquelleAutor abcd | 2012-09-05
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vorausgesetzt, das original hatte einen Tippfehler, und
f1
ist eigentlichfi
(oder vice verca):fi
ist ein Zeiger auf ein Objekt, so dass Sie zu halten ist, indem der gleiche Zeiger, wenn Siefi += x
Sie tatsächlich ändern den Wert des Objekts, auf dasfi
Punkte. Hoffe, das ist klar.Um das Problem zu lösen, können Sie
fi = fi + x
statt.Hinzugefügt Ihre Lösung für die nächsten Generationen
InformationsquelleAutor zenpoy
Es scheint, Sie werden anfügen, die das gleiche array für die Liste, und dann verändert den Inhalt des Arrays
Müssen Sie zum erstellen eines neuen array-Objekts jedes mal, wenn Sie hängen Sie an
f2
Müssen Sie mehr info, um den code in Ihre Frage, wenn Sie weitere Hilfe benötigen. Es macht nicht viel Sinn im moment (wo ist der Wert der
fi
geändert?)InformationsquelleAutor John La Rooy
Ich nehme an, du meintest so etwas wie dieses:
Beachten Sie, dass, wenn
f1
ist ein veränderliches Objekt, die Linief1 += x
muss nicht neues Objekt anlegen, aber nur ändert sich der Wert vonf1
, so dass alle Ihre vorkommen inf2
- array aktualisiert werden.InformationsquelleAutor Abgan
Sollten Sie wirklich fügen Sie ein funktionierendes Beispiel.
Das Objekt, das Sie Anhängen (fi) ist veränderlich (sehen, Python docs), das bedeutet im wesentlichen, dass Sie anfügen eine Referenz auf das Objekt, nicht das Objekt Wert ist. Daher Liste mit index 0 und 1 sind eigentlich das gleiche Objekt.
Müssen Sie entweder ein neues Objekt erstellen (
fi = array()
) auf jeder loop-iteration, oder verwenden Sie die copy-Modul.InformationsquelleAutor Erik Cederstrand
Anderen stellt sich die Frage,"Wie gebe ich eine variable per Referenz?".
Daren Thomas Zuordnung verwendet, um zu erklären, wie die variable übergeben, funktioniert in python. Für die append-Methode, die wir denken konnte, in einer ähnlich Art und Weise. Sagen, du bist Anhängen einer Liste "list_of_values", um eine Liste "list_of_variables",
Den Anhängen operation gedacht werden kann, als:
Weil 1. und 2. Element in "list_of_variables" verweisen auf das gleiche Objekt im Speicher, die Ausgabe von oben ist:
Auf der anderen Seite, wenn "list_of_values" ist eine variable, das Verhalten wird anders sein.
Den Anhängen Betrieb ist jetzt äquivalent zu:
Und die Ausgabe ist:
Den Unterschied zwischen variable und list_of_values ist die spätere änderungen in-place.
InformationsquelleAutor Gatsby