Comment fonctionne la compréhension de liste Python avec un préfixe variable ?

DDD
Libérer: 2024-11-22 02:33:13
original
421 Les gens l'ont consulté

How Does Python's List Comprehension with a Variable Prefix Work?

Boucle for-in Python avec un préfixe de variable

En Python, il est possible de rencontrer des extraits de code comme les suivants :

foo = [x for x in bar if x.occupants > 1]
Copier après la connexion

Cet extrait de code soulève la question : qu'est-ce que cela signifie et comment cela signifie-t-il travail ?

Comprendre la compréhension de liste

La syntaxe en question est connue sous le nom de compréhension de liste. Une compréhension de liste est un moyen concis de générer une nouvelle liste basée sur une liste existante, généralement en filtrant ou en transformant ses éléments.

Structure syntaxique de la compréhension de liste

A la compréhension de la liste suit cette structure syntaxique générale :

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

Explication du Donné Exemple

Dans l'exemple donné, les éléments suivants sont impliqués :

  • Expression : x (cela deviendra un élément de la nouvelle liste)
  • Iterable: barre (la liste à filtrer ou transformé)
  • État : x.occupants > 1 (utilisé pour filtrer la barre)

Comment ça marche

La compréhension de la liste parcourt chaque élément x dans la barre de liste. Pour chaque élément x, il vérifie si la condition x.occupants > 1 est vrai. Si la condition est vraie, l'expression x est évaluée et incluse dans la nouvelle liste en cours de construction.

Comparaison avec une boucle For-in

La compréhension de la liste est équivalente à la boucle for-in traditionnelle suivante :

foo = []
for x in bar:
    if x.occupants > 1:
        foo.append(x)
Copier après la connexion

Cependant, la compréhension de la liste est plus concise et lisible.

Manière alternative de comprendre la syntaxe

Alternativement, la compréhension de la liste peut être considérée comme un raccourci vers deux fonctions intégrées :

  • map(function, iterable) applique la fonction donnée à chaque élément de l'itérable, renvoyant une liste de résultats.
  • filter(condition, iterable) filtre l'itérable en fonction de la condition donnée, renvoyant une liste d'éléments qui remplissent la condition.

Dans l'exemple donné, la compréhension de la liste est équivalent à :

foo = map(lambda x: x, filter(lambda x: x.occupants > 1, bar))
Copier après la connexion

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