¿El objeto ‘NoneType’ no es un subíndice?

list1 = ["name1", "info1", 10] list2 = ["name2", "info2", 30] list3 = ["name3", "info3", 50] MASTERLIST = [list1, list2, list3] def printer(list): print ("Available Lists:") listlen = (len(list)) for x in range(listlen): print (list[x])[0] 

Este código está devolviendo el error “El objeto” El tipo de letra “no se puede subscribir” cuando bash ejecutar la printer(MASTERLIST) . ¿Qué hice mal?

La función print() devuelve None . Usted está tratando de indexar Ninguno. No puede, porque 'NoneType' object is not subscriptable .

Ponga el [0] dentro de los soportes. Ahora estás imprimiendo todo, y no solo el primer término.

El [0] necesita estar dentro de la ) .

No utilice la list como un nombre de variable, ya que esto oculta el contenido incorporado.

Y no hay necesidad de determinar la longitud de la lista. Sólo iterar sobre ello.

 def printer(data): for element in data: print(element[0]) 

Solo un addendum: mirando el contenido de las listas internas, creo que podrían ser la estructura de datos incorrecta. Parece que quieres usar un diccionario en su lugar.

Punto A: no use la lista como nombre de variable Punto B: no necesita el [0] solo

 print(list[x]) 

La indexación, por ejemplo, [0] debería aparecer dentro de la impresión …

 list1 = ["name1", "info1", 10] list2 = ["name2", "info2", 30] list3 = ["name3", "info3", 50] def printer(*lists): for _list in lists: for ele in _list: print(ele, end = ", ") print() printer(list1, list2, list3)