python 函数中的类型错误(不可订阅的 int 对象)
TypeError in python function (int object not subscriptable)
我有一个函数可以打印出 3x3 矩阵的 2x2 矩阵卷积:
image = [[1,0,1], # Original image
[0,1,0],
[1,0,1]]
我的函数应该在哪里打印出来:
[1,0]
[0,1]
[0,1]
[1,0]
[0,1]
[1,0]
[1,0]
[0,1]
函数如下
def convolution(image,result):
# Image being 2d matrix
# Result being return stacked 2d matrices
# DECLARE LOCAL VARIABLES
a = 0 # Slice [a:b]
b = 2
r = 0
# For row in image:
for row in image:
# While b < row length:
while b < len(row):
print(row[r][a:b]) # HERE IS THE ERROR
print(row[r+1][a:b])
a += 1
b += 1
a = 0 # Slice [a:b]
b = 2
matrix2d.clear()
我收到以下错误:
Traceback (most recent call last):
File "conv.py", line 49, in <module>
convolution(image,result3d)
File "conv.py", line 24, in convolution
print(row[r][a:b])
TypeError: 'int' object is not subscriptable
错误信息对我来说比较模糊。如何纠正此错误?
在您的代码中,row
是您图像的一行,例如第一行是 [1,0,1]
。然后在你的 while
循环中, row[r]
是一个整数,而不是数组。
错误信息给了你错误所在的行,说你不能取整数的下标,意思是你不能做a[1]
如果a
是一个int
.有了这些信息,您就有了一个很好的线索来发现 row[r]
确实是一个整数。
我有一个函数可以打印出 3x3 矩阵的 2x2 矩阵卷积:
image = [[1,0,1], # Original image
[0,1,0],
[1,0,1]]
我的函数应该在哪里打印出来:
[1,0]
[0,1]
[0,1]
[1,0]
[0,1]
[1,0]
[1,0]
[0,1]
函数如下
def convolution(image,result):
# Image being 2d matrix
# Result being return stacked 2d matrices
# DECLARE LOCAL VARIABLES
a = 0 # Slice [a:b]
b = 2
r = 0
# For row in image:
for row in image:
# While b < row length:
while b < len(row):
print(row[r][a:b]) # HERE IS THE ERROR
print(row[r+1][a:b])
a += 1
b += 1
a = 0 # Slice [a:b]
b = 2
matrix2d.clear()
我收到以下错误:
Traceback (most recent call last):
File "conv.py", line 49, in <module>
convolution(image,result3d)
File "conv.py", line 24, in convolution
print(row[r][a:b])
TypeError: 'int' object is not subscriptable
错误信息对我来说比较模糊。如何纠正此错误?
在您的代码中,row
是您图像的一行,例如第一行是 [1,0,1]
。然后在你的 while
循环中, row[r]
是一个整数,而不是数组。
错误信息给了你错误所在的行,说你不能取整数的下标,意思是你不能做a[1]
如果a
是一个int
.有了这些信息,您就有了一个很好的线索来发现 row[r]
确实是一个整数。