Ответ 1
Это означает, что вы пытались обрабатывать целое число как массив. Например:
a = 1337
b = [1,3,3,7]
print b[0] # prints 1
print a[0] # raises your exception
Что означает unsubscriptable
в контексте TypeError, как в:
TypeError: 'int' object is unsubscriptable
EDIT: Пример короткого кода, который приводит к этим явлениям.
a=[[1,2],[5,3],5,[5,6],[2,2]]
for b in a:
print b[0]
> 1
> 5
> TypeError: 'int' object is unsubscriptable
Это означает, что вы пытались обрабатывать целое число как массив. Например:
a = 1337
b = [1,3,3,7]
print b[0] # prints 1
print a[0] # raises your exception
Проблема в вашем примере кода заключается в том, что массив "a" содержит два разных типа: он имеет 4 списков из 2 элементов и одно целое. Затем вы пытаетесь подчинить script каждый элемент в "a", включая целочисленный элемент.
Другими словами, ваш код эффективно выполняет:
print [1,2][0]
print [5,3][0]
print 5[0]
print [5,6][0]
print [2,2][0]
Эта средняя строка, где он делает "5 [0]", является тем, что порождает ошибку.
Вы пытаетесь найти индекс массива int:
>>> 1[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is unsubscriptable
То есть квадратные скобки []
являются индексом. Если вы попытаетесь применить оператор индекса к объекту, который его не поддерживает (например, не реализует __getitem__()
).