gaminghackslogicielssourcestutoriels

Python meilleur moyen d'itérer une liste pour la modifier



En python il n'existe qu'une seule méthode pour itérer une liste et obtenir chacun de ses éléments ( for in), mais pour pouvoir modifier chaque élément d'une liste il faut ruser et il existe de nombreuses méthodes pour le faire. En bas se trouve un tableau récapitulatif des performances des différentes méthodes choisies. On voit que les générateurs tels que range et enumerate sont (presque) toujours plus rapides qu'un compteur fait main avec une variable incrémentée.
Une strucure spéciale a été mise en place dans python pour les générateurs qui ne s'applique pas avec les compteurs incrémentés, car ceux ci sont réévalués à chaque boucle.
Attention : seules les unités des colonnes sont équivalentes.
nom de la fonction 1 10 100 1000 10000
range 1.7 4.5 2.8 2.63 2.6
range + len sauvegardé 1.6 4.1 2.7 2.60 2.6
enumerate 5.3 8 3.0 3.0 2.6
compteur inverse 1.5 5.0 3.8 3.7 3.9
compteur 1.4 5.8 4.7 4.7 4.8

Donc : Il vaut mieux utiliser le générateur range ou bien enumerate.
Valid XHTML 1.0 Strict CSS Valide !