Maison > développement back-end > Tutoriel Python > Quel est le moyen le plus efficace de créer de grandes listes d'éléments répétés en Python ?

Quel est le moyen le plus efficace de créer de grandes listes d'éléments répétés en Python ?

Susan Sarandon
Libérer: 2024-12-09 05:29:10
original
501 Les gens l'ont consulté

What's the Most Efficient Way to Create Large Lists of Repeated Items in Python?

Créer efficacement des listes d'éléments répétés

En Python, créer des listes avec des éléments répétés est une tâche courante. Une méthode consiste à utiliser une compréhension de liste, par exemple [e pour le nombre dans la plage (n)]. Cependant, cette approche peut s'avérer inefficace, en particulier pour les grandes listes.

Approches alternatives

Une alternative consiste à utiliser la méthode de répétition intégrée de Python à partir du module itertools :

itertools.repeat(e, n)
Copier après la connexion

Cela crée un objet qui génère des valeurs répétées de e à la demande. Pour obtenir une liste, convertissez-la simplement :

list(itertools.repeat(e, n))
Copier après la connexion

Considérations relatives aux performances

Bien que la répétition puisse initialement apparaître plus rapidement que la méthode de multiplication de liste ([e] * n) , il crée un objet plutôt qu'une liste concrète. Pour créer la liste, elle doit être convertie.

[e] * n
Copier après la connexion

Cette approche crée directement une liste remplie de n copies de e.

Tests de performances

Les tests de performances révèlent que pour les grandes listes, la multiplication des listes est considérablement plus rapide :

## repeat()
timeit.timeit('itertools.repeat("foo", 1000000)', number=1000)
0.4600000247131665

## [e] * n
timeit.timeit('["foo"] * 1000000', number=1000)
0.19000002993464403
Copier après la connexion

Conclusion

Pour créer de grandes listes d'éléments répétés, multiplier une liste d'éléments uniques ([e] * n) est le choix optimal en raison à ses performances supérieures.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal