Saltar al contenido

Lista append() en bucle for

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 aluego en la segunda ronda intentará llamar a.appendcomo 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 lists 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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *