/ / Wie man eine 2D Liste in Python durchläuft - Python, Liste, Python-2.7

Wie man eine 2D Liste in Python durchläuft - python, list, python-2.7

Ich habe folgende Liste:

grid = [[2, 6, 8, 6, 9], [2, 5, 5, 5, 0], [1, 3, 8, 8, 7], [3, 2, 0, 6, 9], [2, 1, 4,5,8], [5, 6, 7, 4, 7]]

und ich benutze fowling for loop zum Überfahren jedes Elements für die Grid-Liste ->

for i in xrange(len(grid[i])):
for j in xrange(len(grid[j])):
print grid[i][j]
print "n"

Aber es zeigt nicht die letzte Zeile der Liste, d. H. [5,6,7,4,7]

Also, was ist der richtige Krieg in Python Travers in 2D-Liste?

Antworten:

8 für die Antwort № 1

Der richtige Weg, um eine 2-D-Liste zu durchlaufen, ist

for row in grid:
for item in row:
print item,
print

Das for Schleife in Python, wird jedes Element bei jeder Iteration auswählen. Also, von grid 2-D-Liste, bei jeder Iteration werden 1-D-Listen ausgewählt. Und in der inneren Schleife werden einzelne Elemente in den 1-D-Listen ausgewählt.

Wenn Sie Python 3.x verwenden, verwenden Sie bitte die print als eine Funktion, nicht als eine Aussage, so

for row in grid:
for item in row:
print(item, end = " ")
print()

Ausgabe

2 6 8 6 9
2 5 5 5 0
1 3 8 8 7
3 2 0 6 9
2 1 4 5 8
5 6 7 4 7

Aber wenn Sie das Element in einem bestimmten Index ändern möchten, können Sie dies tun

for row_index, row in enumerate(grid):
for col_index, item in enumerate(row):
gird[row_index][col_index] = 1     # Whatever needs to be assigned.

0 für die Antwort № 2

Warum nicht:

for i in grid:
for j in i:
print("{}".format(j))
print("n")

0 für die Antwort № 3

Versuchen Sie folgendes ...

for i in grid:
for j in i:
print j
print "----"

0 für die Antwort № 4

Versuchen Sie stattdessen, zu folgen. Sie können die notwendige Operation anstelle von "Raster drucken [i] [j]" ausführen

for i in range(len(grid)):
for j in range(len(grid[i])):
print grid[i][j]
print "---"