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)