J'ai une longue liste d'états, qui sont traversés dans l'ordre. La traversée d'un état signifie qu'un nouvel état est généré, en remplacement de l'état existant. Après un petit nombre de traversées, je conclus soit un succès d'échec. En cas de succès, ma nouvelle liste est les états modifiés en haut de la liste, et tous les éléments non-traversés sont inchangés. Si je conclus l'échec, je retourne juste la liste originale. Autrement dit, je «défais» en rejetant les changements. Le cas de réussite pourrait être fait en concaténant ma liste de nouveaux états avec une tranche de la liste d'origine. Cependant, les tranches font des copies superficielles si je comprends bien. Il semble que ce soit un coût inutile pour une longue liste. Si j'avais une liste chaînée, je pourrais le faire à très bas prix, je pense. Dois-je l'implémenter en tant que liste liée en python?Est-ce une application pour une véritable liste liée en python?
EDIT Les itérateurs semblent être une bonne solution Python. Voir ma réponse ci-dessous. Apparemment, cette exigence est un "retroactive data structure"
Une liste normale ferait l'affaire? –
Une tranche de liste n'est pas une "copie superficielle" – donkopotamus
@donkopotamus, Oh, je pensais que c'était: https://stackoverflow.com/a/19068714/4834 – quamrana