Python unsubscriptable

时间:2010-11-08 12:00:11

标签: python typeerror

unsubscriptable在TypeError的上下文中的含义如下:

TypeError: 'int' object is unsubscriptable

编辑: 导致这种现象的简短代码示例。

a=[[1,2],[5,3],5,[5,6],[2,2]]
for b in a:
    print b[0]

> 1
> 5
> TypeError: 'int' object is unsubscriptable

4 个答案:

答案 0 :(得分:31)

这意味着您尝试将整数视为数组。例如:

a = 1337
b = [1,3,3,7]
print b[0] # prints 1
print a[0] # raises your exception

答案 1 :(得分:11)

示例代码中的问题是数组“a”包含两种不同的类型:它有4个2元素列表和1个整数。然后,您尝试对“a”中的每个元素进行子脚本编写,包括整数元素。

换句话说,您的代码正在有效地执行:

print [1,2][0]
print [5,3][0]
print 5[0]
print [5,6][0]
print [2,2][0]

它所在的中间行“5 [0]”是产生错误的原因。

答案 2 :(得分:8)

您正在尝试查找int的数组下标:

>>> 1[0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is unsubscriptable

也就是说,方括号[]是下标运算符。如果您尝试将下标运算符应用于不支持它的对象(例如未实现__getitem__())。

答案 3 :(得分:0)

我解决了将变量从列表转换为数组的问题!

import numpy as np
my_list = API.get_list()
my_array = np.array(my_list)

即使工作并且是错误的肯定,这也解决了我的“问题”