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 la compréhension d'une 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 :
print([y if y not in b for y in a])
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 être placée après la boucle for dans la compréhension de liste, sauf si elle est utilisée comme opérateur ternaire.
Syntaxe correcte :
[y for y in a if y not in b]
Ce code parcourt 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 d'opérateur ternaire alternative :
[y if y not in b else other_value for y in a]
Ce code utilise l'opérateur ternaire pour spécifier une 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.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3