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
Susan Sarandonoriginal
2024-12-09 05:29:10546parcourir

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)

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))

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

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

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!

Déclaration:
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