Tôi có một mảng 3D trong Python và tôi cần phải lặp qua tất cả các khối trong mảng. Đó là, cho tất cả (x,y,z)
trong kích thước của mảng tôi cần phải truy cập vào các khối:Cách Pythonic lặp qua mảng 3D
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)]
Mảng là một mảng NumPy, mặc dù đó không phải là thực sự cần thiết. Tôi chỉ thấy rất dễ đọc dữ liệu bằng một lớp lót sử dụng numpy.fromfile()
.
Có cách nào khác để Pythonic lặp qua những thứ này không? Điều đó chỉ đơn giản là giống như C bằng cách sử dụng cú pháp Python.
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)])
Liệu điều này được trả lời bằng http : //stackoverflow.com/questions/1280667/in-python-is-there-an-easier-way-to-write-6-nested-for-loops? – tom10
Đó sẽ là phạm vi (...- 1), ở đây ... – EOL
Thực ra, có @ tom10, nó trả lời câu hỏi –