list - 如何为我的 3D 列表中的每个元素 = 1 分配一个随机数?
问题描述
我创建了一个名为 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
推荐阅读
- javascript - 如何在 Chrome 扩展中按类抓取页面内容?
- firebase - Firebase 存储安全规则中有哪些不同类型的匹配?
- ios - 使用 NSManagedObject 作为 MKAnnotation 会导致 MKMapView 在较新的设备中崩溃
- laravel - Laravel 验证规则 - 如何可选,但前提是另一个条件为真
- jasmine - JasmineJS + AngularJS:如何模拟 Spy#callFake() 中的延迟
- php - 调试 Laravel 应用程序以及它是如何运行的?
- windows - 如何修复“builddir 未被识别为内部或外部命令”。构建libiconv时出错?
- sql - 如何修复sql连接
- php - exit() 被跳过/忽略并且不停止脚本执行
- angular - Angular 7 - 从父组件访问子组件的动态属性