En Python, la compréhension de liste offre un moyen concis de créer des listes basées sur des itérables existants. Cependant, une question s'est posée concernant une compréhension de liste impliquant une instruction if.
L'objectif était de comparer deux itérables, a et b, et d'imprimer uniquement les éléments qui apparaissaient dans les deux. Le code prévu ressemblait à ceci :
<code class="python">print([y if y not in b for y in a])</code>
Malheureusement, ce code a entraîné une erreur de syntaxe. Le problème réside dans l’ordre de la construction if-else. En Python, l'instruction conditionnelle doit venir après la boucle for dans la compréhension de liste, sauf si elle est utilisée comme opérateur ternaire.
Syntaxe correcte :
<code class="python">[y for y in a if y not in b]</code>
Ce code itère à travers chaque élément y dans a. Si y n'est pas trouvé dans b, il est ajouté à la liste. La liste résultante contiendra les éléments qui apparaissent à la fois dans a et b.
Syntaxe de l'opérateur ternaire alternatif :
<code class="python">[y if y not in b else other_value for y in a]</code>
Ce code utilise l'opérateur ternaire pour spécifier un valeur alternative (other_value) au cas où y ne serait pas trouvé dans b. Cette approche est moins courante et généralement utilisée lorsqu'une valeur par défaut est nécessaire.
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!