Python unsubscriptable

The*_*dor 24 python typeerror

unsubscriptable在TypeError的上下文中意味着什么,如:

TypeError: 'int' object is unsubscriptable
Run Code Online (Sandbox Code Playgroud)

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

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

> 1
> 5
> TypeError: 'int' object is unsubscriptable
Run Code Online (Sandbox Code Playgroud)

kic*_*hik 35

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

a = 1337
b = [1,3,3,7]
print b[0] # prints 1
print a[0] # raises your exception
Run Code Online (Sandbox Code Playgroud)


Sea*_*der 13

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

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

print [1,2][0]
print [5,3][0]
print 5[0]
print [5,6][0]
print [2,2][0]
Run Code Online (Sandbox Code Playgroud)

它产生"5 [0]"的中间线是产生错误的原因.


cam*_*amh 9

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

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

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