python - 'int' 对象在 3d 数组中不是可下标的错误
问题描述
我正在尝试逐层访问形状 (7,4,6) 的 3D 矩阵中的单个值。我想从一个(行 X 列)访问所有 7 层的值并比较它们,但在访问时出错价值观部分。我也可以按要求的顺序正确打印它们。我写的代码是:
array = [[[-99, -99, -99, -99, -99, -99],
[-99, -99, -99, -99, -99, -99],
[-99, -99, -99, -99, -99, 1],
[-99, -99, -99, -99, -99, 1]],
[[ 1, 1, 1, 1, 1, 1],
[ 1, 1, 1, 1, 1, 1],
[ 1, 1, 1, 1, 1, 1],
[ 1, 1, 1, 1, 1, 1]],
[[ 1, 1, 1, 1, 1, 1],
[ 1, 1, 1, 1, 1, 1],
[ 1, 1, 1, 1, 1, 1],
[ 1, 1, 1, 1, 1, 1]],
[[ 1, 1, 1, 1, -99, -99],
[ 1, 1, 1, 1, -99, -99],
[ 1, 1, 1, 1, -99, -99],
[ 1, 1, 1, 1, 1, -99]],
[[ 0, 1, 1, 1, 1, 1],
[ 0, 1, 1, 1, 1, 1],
[ 1, 1, 1, 1, 1, 1],
[ 1, 1, 1, 1, 1, 1]],
[[-99, -99, -99, -99, -99, -99],
[-99, -99, -99, -99, -99, -99],
[-99, -99, -99, -99, -99, -99],
[-99, -99, -99, -99, -99, -99]],
[[ 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 1],
[ 0, 0, 1, 1, 1, 1],
[ 0, 1, 1, 1, 1, 1]]]
for i in range(0,4):
for j in range(0,6):
for k in range(0,7):
a = array([k][i][j])
if (a == 0 and b == 0):
NN += 1
elif (a == 0 and b == 1):
RN += 1
elif (a == 1 and b == 0):
NR += 1
elif (a == 1 and b == 1):
RR += 1
else:
exit
b = a
RR、NN、NR 和 RN 和 b 被声明为 0 a=in initial state 但我得到
TypeError:'int' 对象不可下标
在最后一行。我在网上看到了它,它说我必须将它转换为字符串才能使用它。有人可以向我解释为什么我们必须这样做以及如何这样做?
解决方案
推荐阅读
- mysql - 在mysql中同时使用concat和substring/substring_index时出现SQL错误1166
- powershell - 如何使用包含 $value 的模式选择字符串
- reactjs - Ant Design 网格:固定每个页面大小的宽度
- arrays - 在完成中添加数据模型字典:转义
- angular - 角度导航栏数据未刷新
- python-3.x - 使用两台机器时如何在 Pycharm 中设置环境?
- bash - PowerShell 的 Write-Host 的 Bash 等效项(写入终端但不通过管道传输到标准输出)
- python - 使用键对嵌套列表进行排序的 Pythonic 方法
- c# - 在生产服务器上部署带有水晶报表的 C# 应用程序
- javascript - react-modal - 输入上的 onChange 没有更新状态