Maison > développement back-end > Tutoriel Python > Compréhension de liste ou expression génératrice avec `join()` ? Qu'est-ce qui est le plus efficace ?

Compréhension de liste ou expression génératrice avec `join()` ? Qu'est-ce qui est le plus efficace ?

DDD
Libérer: 2024-12-14 19:30:16
original
678 Les gens l'ont consulté

List Comprehension or Generator Expression with `join()`?  Which is More Efficient?

Compréhension de liste sans parenthèses : expressions génératrices

En Python, il est possible de créer une liste d'éléments à l'aide de compréhensions de liste, qui ont un syntaxe similaire aux compréhensions définies mais avec des crochets. Cependant, il est également possible d'obtenir le même résultat sans utiliser de parenthèses, conduisant à une construction qui ressemble à une expression génératrice.

Considérons l'exemple suivant :

''.join([str(_) for _ in range(10)])
Copier après la connexion

Ce code crée une liste de chaînes représentant les nombres de 0 à 9 et les joint en une seule chaîne à l'aide de la méthode join. Fait intéressant, le code suivant produit le même résultat sans utiliser de crochets :

''.join(str(_) for _ in range(10))
Copier après la connexion

La raison de ce comportement est que le code sans crochets représente une expression génératrice, qui est similaire à une compréhension de liste mais renvoie un itérable objet au lieu d’une liste. Les expressions génératrices sont plus efficaces en mémoire et plus rapides que les compréhensions de liste, car elles ne créent pas la liste entière en mémoire.

Cependant, dans le cas de la méthode join, l'utilisation d'une compréhension de liste est plus efficace car join opère plus efficacement sur les listes réelles. Par conséquent, il est généralement recommandé d'utiliser des compréhensions de liste avec jointure pour de meilleures performances.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal