Maison > développement back-end > Tutoriel Python > Comment fonctionnent les compréhensions de listes et les concepts associés en Python ?

Comment fonctionnent les compréhensions de listes et les concepts associés en Python ?

Susan Sarandon
Libérer: 2024-12-30 19:44:10
original
620 Les gens l'ont consulté

How Do List Comprehensions and Related Concepts Work in Python?

Démystifier la « compréhension de liste » et les concepts associés

Dans le domaine de la programmation, la « compréhension de liste » est une technique concise mais puissante pour créer des listes. Son élégance et sa simplicité en ont fait une pierre angulaire de la programmation Python.

Dévoilement des mécanismes de compréhension de liste

Comme son nom l'indique, une compréhension de liste est une manière concise de générer une liste. Il prend la forme suivante :

[expression for item in sequence if condition]
Copier après la connexion

Où :

  • expression : Le calcul à appliquer à chaque élément de la séquence.
  • item : La variable d'espace réservé représentant chaque élément dans le séquence.
  • séquence : La collection itérable (liste, tuple, ensemble, etc.) à traiter.
  • condition : Un filtrage facultatif condition qui détermine s'il faut inclure un élément dans la sortie.

Une méthode pratique Exemple

Considérons le fragment de code suivant :

[x ** 2 for x in range(10)]
Copier après la connexion

Cette compréhension de liste génère une liste des carrés de nombres de 0 à 9. Elle le fait en appliquant l'expression x ** 2 ( calculant le carré de chaque nombre) à chaque élément x dans la plage de séquence (10) (une plage de nombres de 0 à 9). Le résultat est une liste [0, 1, 4, 9, 16, 25, 36, 49, 64, 81].

Variations et extensions

Ensemble de compréhensions :
Si vous désirez un ensemble (une collection non ordonnée d'éléments uniques) au lieu d'une liste, vous pouvez utiliser set compréhensions :

{i for i in range(10) if i % 2 == 1}
Copier après la connexion

Cette expression produit un ensemble de nombres impairs de 0 à 9, à savoir set({1, 3, 5, 7, 9}).

Dict Compréhensions :
Les compréhensions de dict vous permettent de créer un dictionnaire basé sur la valeur-clé paires :

{i: i ** 2 for i in range(5)}
Copier après la connexion

Cette compréhension génère un dictionnaire où les clés et les valeurs sont respectivement des nombres de 0 à 4 et leurs carrés : dict({0 : 0, 1 : 1, 2 : 4, 3 : 9 , 4 : 16}).

Expressions génératrices :
Expressions génératrices renvoie un objet générateur, qui permet une évaluation paresseuse et une efficacité de la mémoire :

(i for i in range(5))
Copier après la connexion

Cette expression génère un générateur qui itère sur les nombres de 0 à 4, les produisant un à la fois.

Avantages de compréhensions

Les compréhensions offrent plusieurs avantages par rapport aux boucles for traditionnelles :

  • Concision : Les compréhensions sont plus compactes et plus faciles à lire que leurs équivalents pour les boucles.
  • Lisibilité : La nature déclarative des compréhensions rend leur intention claire .
  • Efficacité de la mémoire : Les expressions génératrices évitent de stocker l'intégralité du résultat en mémoire, ce qui les rend plus efficaces lorsqu'ils traitent de grands ensembles de données.

Conclusion

Les compréhensions de listes, ainsi que leurs variations (ensembles, dict et expressions génératrices), sont outils essentiels pour les programmeurs Python. Leur brièveté, leur clarté et leur efficacité les rendent inestimables pour un large éventail de tâches de programmation.

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