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]"的中间线是产生错误的原因.
您正在尝试查找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__()
).