Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich ein 2D-Array in Python effizient initialisieren?
Initialisieren eines zweidimensionalen Arrays in Python
Bei der Arbeit mit Python kann es vorkommen, dass Sie ein zweidimensionales Array initialisieren müssen. oder eine „Liste von Listen“. Obwohl das bereitgestellte Code-Snippet, das verschachtelte Schleifen verwendet, die Aufgabe erfüllt, ist es möglicherweise nicht der effizienteste Ansatz.
Vereinfachte Initialisierung
Eine prägnantere Methode zur Initialisierung eines Zwei- Das dimensionale Array erfolgt durch Listenverständnis:
t = [[0] * 3 for i in range(3)]
Dieser Code initialisiert ein 3x3-Array, bei dem alle Elemente auf gesetzt sind 0.
Ein Warnhinweis
Obwohl es praktisch erscheinen mag, kann die Verwendung von [[v] * n] * n zum Initialisieren eines Arrays zu unerwartetem Verhalten führen. Wie im folgenden Code gezeigt, erstellt dieser Ansatz Kopien derselben Listenreferenz, was dazu führt, dass Referenzen im gesamten Array gemeinsam genutzt werden:
a = [[0] * 3] * 3 a[0][0] = 1 print(a) # Output: [[1, 1, 1], [1, 1, 1], [1, 1, 1]]
Anders als erwartet werden alle Elemente des Arrays zu 1. Dies liegt daran, dass jedes Unterliste enthält einen Verweis auf die ursprüngliche Liste, und jede Änderung an einem Element wirkt sich auf das gesamte Array aus.
Zusammenfassend lässt sich sagen, dass für die Initialisierung zweidimensionaler Arrays in Python der Einfachheit halber das Listenverständnis verwendet wird Vermeiden Sie die Verwendung von [[v] * n] * n aufgrund von Problemen bei der Referenzfreigabe.
Das obige ist der detaillierte Inhalt vonWie kann ich ein 2D-Array in Python effizient initialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!