Maison  >  Article  >  développement back-end  >  Comment fonctionne la compréhension de liste Python avec un préfixe variable ?

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

DDD
DDDoriginal
2024-11-22 02:33:13425parcourir

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]

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 :

  • 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)

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))

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