843 votes

Quelle est la différence entre range et xrange?

Apparemment xrange est plus rapide mais j’ai aucune idée pourquoi il est plus rapide (et aucune preuve en plus de l’anecdotique jusqu'à maintenant qu’il est plus rapide) ou ce qui par ailleurs est différent au sujet de

1022voto

Charles Points 2189

gamme crée une liste, donc si vous faites il crée une liste en mémoire avec éléments.

``<s>est un générateur, donc il</s> est un objet de la séquence <s>est un</s> qui évalue paresseusement.

237voto

Corey Points 5286
<blockquote> <p>gamme crée une liste, donc si vous varier (1, 10000000) il crée une liste en mémoire avec 10000000 éléments. XRange est un générateur, donc il prend la valeur paresseusement.</p> <p>C’est vrai, mais en Python 3, gamme sera exécuté par le xrange() 2 Python. Si vous avez besoin pour générer en fait la liste, vous devrez faire :</p><pre><code></code></pre></blockquote>

121voto

John Fouhy Points 14700

N’oubliez pas, le module timeit permet de vérifier laquelle des petites snipps de code est plus rapide !

Personnellement, j’ai toujours utiliser range(), à moins que j’étais face à vraiment des listes énormes--comme vous pouvez le voir, LeRiz, pour une liste d’entrées 1 million, l’extra frais généraux est seules 0,04 secondes. Et comme le souligne Corey, dans Python 3.0 xrange vont disparaître et gamme vous donnera comportement itérateur agréable quand même.

69voto

efotinis Points 6338

XRange seulement stocke les paramètres de la gamme et génère les numéros de demande. Cependant la mise en œuvre C de Python limite actuellement son args à C longs :

Notez que dans Python 3.0, il n’y a seulement la gamme et il se comporte exactement comme la 2.x xrange.

44voto

Ben Hoffstein Points 44398

XRange retourne un itérateur et garde uniquement un numéro en mémoire à la fois. gamme conserve toute la liste des numéros en mémoire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X