Python no se puede suscribir

¿Qué significa unsubscriptable en el contexto de un TypeError como en:

 TypeError: 'int' object is unsubscriptable 

EDITAR: Ejemplo de código corto que resulta en este fenómeno.

 a=[[1,2],[5,3],5,[5,6],[2,2]] for b in a: print b[0] > 1 > 5 > TypeError: 'int' object is unsubscriptable 

Significa que intentaste tratar un entero como una matriz. Por ejemplo:

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

El problema en su código de muestra es que la matriz “a” contiene dos tipos diferentes: tiene 4 listas de 2 elementos y un entero. A continuación, está intentando sububicar cada elemento en “a”, incluido el elemento entero.

En otras palabras, su código está haciendo efectivamente:

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

Esa línea intermedia donde hace “5 [0]” es lo que está generando el error.

Está intentando buscar un subíndice de matriz de un int:

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

Es decir, los corchetes [] son el operador de subíndice. Si intenta aplicar el operador de subíndice a un objeto que no lo admite (como no implementar __getitem__() ).