Ein Hinweis darauf, wovon ich beim Erstellen eines leeren mehrdimensionalen Arrays abhängig war
Ich wollte ein leeres zweidimensionales Array im Skript erstellen, also habe ich es mit dem folgenden Code erstellt.
hoge = [[]] * 5
Dann bekomme ich aus irgendeinem Grund nicht die erwarteten Ergebnisse. Zum Beispiel,
>>> hoge = [[]] * 5
>>> for i in range(5):
hoge[i].append(i)
Wenn Sie den Inhalt von hoge wie überprüfen
>>> print hoge
[[0],[1],[2],[3],[4]]
ich dachte es wäre
>>> print hoge
[[0,1,2,3,4],[1,2,3,4],[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4]]
Es ist so geworden. Schließlich scheint das mit * duplizierte Objekt nur ein Verweis auf das ursprüngliche Objekt zu sein, wie das Objekt, das durch die Zuweisung mit = erstellt wurde. Um ein leeres zweidimensionales Array zu erstellen,
[[] for i in range(5)]
Ich frage mich, ob es am besten ist, es zu tun.
Recommended Posts