Ich habe ein 3D-Array in Python und ich muss über alle Cubes im Array iterieren. Das heißt, für alle (x,y,z)
in die Dimensionen des Arrays ich den Cube zugreifen müssen:Pythonische Art der Iteration über 3D-Array
array[(x + 0, y + 0, z + 0)]
array[(x + 1, y + 0, z + 0)]
array[(x + 0, y + 1, z + 0)]
array[(x + 1, y + 1, z + 0)]
array[(x + 0, y + 0, z + 1)]
array[(x + 1, y + 0, z + 1)]
array[(x + 0, y + 1, z + 1)]
array[(x + 1, y + 1, z + 1)]
Das Array ist ein Numpy Array, obwohl das nicht wirklich notwendig. Ich fand es einfach, die Daten mit einem Einzeiler unter Verwendung von numpy.fromfile()
zu lesen.
Gibt es noch mehr Pythonic-Methode, um über diese als die folgenden zu iterieren? Das sieht einfach so aus wie C mit Python-Syntax.
for x in range(x_dimension):
for y in range(y_dimension):
for z in range(z_dimension):
work_with_cube(array[(x + 0, y + 0, z + 0)],
array[(x + 1, y + 0, z + 0)],
array[(x + 0, y + 1, z + 0)],
array[(x + 1, y + 1, z + 0)],
array[(x + 0, y + 0, z + 1)],
array[(x + 1, y + 0, z + 1)],
array[(x + 0, y + 1, z + 1)],
array[(x + 1, y + 1, z + 1)])
Wird dies von http beantwortet werden : //stackoverflow.com/questions/1280667/in-python-is-there-an-easier-way-to-write-6-nested-for-loops? – tom10
Das wäre der Bereich (...- 1), hier ... – EOL
Eigentlich ja @ tom10, es beantwortet die Frage –