Wenn ich Iteration über mehrere Spalten in einer Reihe versuchen, hat die Spalte keine Änderung innerhalb einer verschachtelten Schleife:Iterate über mehrere Spalten in einer Liste der Listen in Python
i_rows = 4
i_cols = 3
matrix = [[0 for c in xrange(i_cols)] for r in xrange(i_rows)]
for row, r in enumerate(matrix):
for col, c in enumerate(r):
r[c] = 1
print matrix
Beobachtete Ausgang
[[1, 0, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0]]
Erwartete Ausgabe
[[1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1]]
Ich habe verschiedene Ausdrücke wie xrange()
und len()
ausprobiert und erwäge, zu numpy zu wechseln. Ich bin etwas überrascht, dass ein zweidimensionales Array in Python nicht so intuitiv ist wie mein erster Eindruck von der Sprache.
Das Ziel ist ein zweidimensionales Array mit verschiedenen ganzzahligen Werten, die ich später analysieren muss, um 2D-Grafiken auf dem Bildschirm darzustellen.
Wie kann ich über Spalten in einer Liste von Listen iterieren?
Das funktioniert! So nah ... Ich hatte 'row [col]' ohne Erfolg versucht. – noumenal
@noumenal Yup, wieder das Gleiche :-) erster Wert ist der Index. So versucht 'row [col]' eine Nummer zu subskribieren. Deshalb hätten Sie einen Fehler erhalten. Versuchen Sie jedoch, List Comprehension so gut wie möglich zu verwenden. – thefourtheye
Ich hatte nach den Dokumenten gesucht, wusste aber nicht, wie das Konzept genannt wurde. Es scheint sehr flexibel und Pythonic. – noumenal