Si encuentras algo que te causa duda puedes dejarnos un comentario y te ayudaremos lo mas rápido que podamos.
Solución:
los list.append
función no devuelve ningún valor (pero None
), simplemente agrega el valor a la lista que está utilizando para llamar a ese método.
En la primera ronda del bucle, asignará None
(porque el no retorno de append
) para a
luego en la segunda ronda intentará llamar a.append
como a is None
generará la excepción que está viendo
Solo tienes que cambiarlo a:
a=[]
for i in range(5):
a.append(i)
print(a)
# [0, 1, 2, 3, 4]
list.append
es lo que se llama un mutante o destructivo método, es decir, destruirá o mutará el objeto anterior en uno nuevo (o en un nuevo estado).
Si desea crear una nueva lista basada en una lista sin destruirla o mutarla, puede hacer algo como esto:
a=['a', 'b', 'c']
result = a + ['d']
print result
# ['a', 'b', 'c', 'd']
print a
# ['a', 'b', 'c']
Solo como corolario, puede imitar el append
método haciendo lo siguiente:
a=['a', 'b', 'c']
a = a + ['d']
print a
# ['a', 'b', 'c', 'd']
No necesitas la tarea, list.append(x)
siempre agregará x
para a
y por lo tanto no hay necesidad de redefinir a
.
a = []
for i in range(5):
a.append(i)
print(a)
es todo lo que necesitas. Esto funciona porque list
s son mutables.
Consulte también los documentos sobre estructuras de datos.
No es necesario reasignar.
a=[]
for i in range(5):
a.append(i)
a
Comentarios y calificaciones
Si te ha sido de utilidad nuestro artículo, sería de mucha ayuda si lo compartes con más entusiastas de la programación así nos ayudas a dar difusión a este contenido.