我创建了一个名为x的3D列表,并且我创建了另一个与我以前的列表大小相同的列表,名为y,元素为零。我需要遍历我的 x 列表并检查每个元素是否等于 1,在我的 y 列表中给它一个随机数。我的尝试如下,但我收到一个错误:
import random
import numpy as np
x = [[[0, 1, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 0]],
[[0, 1, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 0]]]
y = [[[0 for row in range(len(x[0][0]))] for col in range(len(x[0]))] for a in range(len(x))]
for i in range(len(x[0][0])):
for j in range(len(x[0])):
for k in range(len(x)):
if x[i][j][k] == 1:
y[i][j][k] = random.randint(1,100)
else:
y[i][j][k] = 0
print(y)
错误:
if grid[i][j][k] == 1:
IndexError: list index out of range
我可以得到任何帮助吗?
你以错误的方式循环。
您始终希望先循环最外层的列表,然后继续向内循环各个外部列表中的每个元素。
像这样尝试:
for i in range(len(x)):
for j in range(len(x[0])):
for k in range(len(x[0][0])):
if x[i][j][k] == 1:
y[i][j][k] = random.randint(1,100)
else:
y[i][j][k] = 0