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]
Ce code renvoie le message d'erreur "L'objet 'NoneType' n'est pas indexable" lorsque j'essaie d'exécuter printer(MASTERLIST)
. Qu'ai-je fait de mal?
Le [0]
doit être à l'intérieur du )
.
La fonction print()
renvoie None
. Vous essayez d'indexer aucun. Vous ne pouvez pas, parce que 'NoneType' object is not subscriptable
.
Placez le [0]
entre les crochets. Maintenant, vous imprimez tout, et pas seulement le premier terme.
N'utilisez pas list
en tant que nom de variable car cela ombrage la fonction intégrée.
Et il n'est pas nécessaire de déterminer la longueur de la liste. Il suffit de le parcourir.
def printer(data):
for element in data:
print(element[0])
Juste un addenda: En regardant le contenu des listes intérieures, je pense qu'elles pourraient être une mauvaise structure de données. Il semble que vous souhaitiez utiliser un dictionnaire à la place.
Point A: N'utilisez pas la liste comme nom de variable Point B: Vous n'avez pas besoin du [0]
print(list[x])
L'indexation, par exemple [0] devrait apparaître à l'intérieur de l'impression ...
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)