En Python, essayez de faire la fonction d’ajout la plus élémentaire à une liste avec une boucle: Vous ne savez pas ce qui me manque ici:
a=[]
for i in range(5):
a=a.append(i)
a
renvoie: 'NoneType' object has no attribute 'append'
La fonction list.append
ne renvoie aucune valeur (mais None
), elle ajoute simplement la valeur à la liste que vous utilisez pour appeler cette méthode.
Dans le premier tour, vous affecterez None
(parce que le non-retour de append
) à a
, puis au second tour, il tentera d'appeler a.append
, a is None
cela soulèvera l'exception que vous voyez
Il vous suffit de le changer pour:
a=[]
for i in range(5):
a.append(i)
a # the list with the new items.
Edit: Comme Juan a dit dans les commentaires, il retourne quelque chose, None
Vous n'avez pas besoin de l'affectation, list.append(x)
ajoutera toujours x
à a
et il n'est donc pas nécessaire de redéfinir a
.
a = []
for i in range(5):
a.append(i)
print(a)
c'est tout ce dont vous avez besoin. Cela fonctionne parce que list
s sont mutables.
Voir aussi le docs sur les structures de données .
Pas besoin de réaffecter.
a=[]
for i in range(5):
a.append(i)
a