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]
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]
Explication du Donné Exemple
Dans l'exemple donné, les éléments suivants sont impliqués :
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)
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 :
Dans l'exemple donné, la compréhension de la liste est équivalent à :
foo = map(lambda x: x, filter(lambda x: x.occupants > 1, bar))
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!