Maison >développement back-end >Tutoriel Python >Que signifie une boucle Python « for-in » précédée d'une variable dans la compréhension de liste et comment fonctionne-t-elle ?

Que signifie une boucle Python « for-in » précédée d'une variable dans la compréhension de liste et comment fonctionne-t-elle ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-28 16:08:11279parcourir

What Does a Python `for-in` Loop Preceded by a Variable in List Comprehension Mean and How Does It Work?

Boucle for-in Python précédée d'une variable

Considérez le code suivant :

foo = [x for x in bar if x.occupants > 1]

Ce code génère la question : « Qu'est-ce que cela signifie et comment ça marche ? »

Pour comprendre cette construction, nous devons plongez dans la syntaxe de compréhension de liste de Python. Une compréhension de liste est un moyen compact de générer une liste en itérant sur une collection existante tout en filtrant et en transformant éventuellement les éléments en fonction d'une condition.

Syntaxiquement, une compréhension de liste se compose de trois parties :

  1. Expression : Une expression représentant les éléments à ajouter au list.
  2. boucle for-in avec une variable : parcourt la collection d'entrée et affecte chaque élément à la variable spécifiée.
  3. instruction if (facultatif)  : filtre les éléments en fonction d'une condition spécifiée.

Dans l'exemple de code, la boucle for-in parcourt chaque élément x dans la barre de collection. L'expression x.occupants > 1 est évalué pour chaque élément, et s'il est évalué à True, l'élément x est ajouté à la liste résultante foo. Ce processus est analogue à une boucle régulière avec une condition de filtre supplémentaire.

Équivalent MATLAB :

foo = bar(bar.occupants > 1);

Équivalent Haskell :

foo = [x | x <- bar, x.occupants > 1]

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