"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Quand la syntaxe de compréhension de liste nécessite-t-elle un opérateur ternaire en Python ?

Quand la syntaxe de compréhension de liste nécessite-t-elle un opérateur ternaire en Python ?

Publié le 2024-11-08
Parcourir:445

When Does List Comprehension Syntax Require a Ternary Operator in Python?

L'énigme de la compréhension de liste : filtrage conditionnel dans les itérables

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.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729571541. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

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