"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Analyse de la différence entre Range et XRange dans Python 2.

Analyse de la différence entre Range et XRange dans Python 2.

Publié le 2025-04-13
Parcourir:566

Range vs. xrange in Python 2.X: What's the Difference?

Comprendre les différences entre les fonctions Range et Xrange dans Python 2.x

python 2.x fournit deux fonctions, Range et Xrange, pour générer une séquence de nombres. Bien que les deux servent un objectif similaire, ils présentent des caractéristiques distinctes, en particulier en termes d'utilisation et d'efficacité de la mémoire.

plage

La fonction de plage crée une liste, qui alloue la mémoire pour stocker toute la séquence en un seul coup. Cela peut être inefficace pour les grandes séquences qui peuvent ne pas s'intégrer dans la mémoire. Par exemple, Range (1, 10000000) créerait une liste avec des éléments 9999999, consommant potentiellement une mémoire significative.

xRange

En revanche, la fonction XRange génère un objet de séquence qui évalue la paresse. Il ne stocke pas toute la séquence en mémoire à l'avance. Au lieu de cela, il calcule chaque élément à la volée au besoin. Cela rend XRange plus économe en mémoire, en particulier pour les séquences plus grandes.

Impact sur l'efficacité

L'évaluation paresseuse de XRange le rend plus rapide que la plage, en particulier pour les grandes séquences. Puisqu'il n'a pas besoin d'allouer de la mémoire à toute la séquence, il entraîne moins de frais généraux. Ceci est particulièrement perceptible dans les boucles ou les compréhensions de la liste où la séquence n'est itérée qu'une seule fois. Can.

Dans Python 3, la plage a remplacé XRange. L'appel XRange soulève une exception NameError. Pour créer un objet de séquence qui se comporte comme Xrange dans Python 2.x, utilisez la plage avec l'argument d'arrêt défini sur None.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3