2017-04-08 1 views
0

Je souhaite utiliser le dernier élément d'une liste dans une boucle for pour générer un nouvel élément. Voici un exemple de jouet de mon problème:Comment utiliser le dernier élément d'une liste dans la boucle for?

a = [1] 
    a += [a[-1]+i for i in range(10)] 

mais il considère que 1 dernier élément et ne passe pas par boucle pour trouver le dernier élément nouveau. Pourriez-vous s'il vous plaît me dire comment résoudre ce problème?

Répondre

0

Essayez ceci:

a = [1] 
for i in range(10): 
    a.append(a[-1]+i) 
print(a) 

En utilisant la compréhension de la liste ne prendra pas la nouvelle dernière valeur du tableau à chaque nouvelle itération, mais en utilisant une volonté de boucle for normale.

+0

Je ne voulais pas avoir boucle comme celui-ci pour exécuter le code plus rapide. – user36729

+0

Je ne pense pas que ce soit plus lent que la compréhension de la liste. Ce que vous faites ci-dessus est également une boucle, juste dans une compréhension de liste. – abagshaw

1

je lance le code et a obtenu la réponse suivante:

In [2]: a = [1] 

In [3]: a += [a[-1]+i for i in range(1,10)] 

In [4]: a 
Out[4]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
+0

Non, par exemple le 4ème élément doit être 4 et non 3. – user36729

+1

C'est parce que la fonction range génère 0 à 9, donc si vous partez de a + = [a [-1] + i pour i dans la gamme (1,10)], vous obtiendrez la sortie [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] – babu7