Compréhension de liste avec if/else : syntaxe et utilisation
Lorsque vous travaillez avec des compréhensions de liste en Python, il est nécessaire d'incorporer une logique if/else pour gérer les opérations conditionnelles. Cet article traite de la syntaxe correcte pour de tels scénarios.
Une tâche courante consiste à créer une liste basée sur une séquence source, avec la boucle for suivante contenant une construction if/else :
results = [] for x in xs: results.append(f(x) if x is not None else '')
Ce code ajoute '' à la liste des résultats si x est Aucun, et calcule sinon f(x). Le résultat souhaité peut également être obtenu en utilisant une compréhension de liste, mais avec un ajustement nécessaire dans la syntaxe :
results = [f(x) if x is not None else '' for x in xs]
La principale différence réside dans l'ordre des clauses if et else dans la compréhension de la liste. La syntaxe correcte nécessite de placer la clause if avant la partie for, suivie de la clause else.
En général, la syntaxe pour une compréhension de liste avec une condition if/else est :
[f(x) if condition else g(x) for x in sequence]
Pour les compréhensions de liste impliquant uniquement des conditions if pour filtrer les éléments de la séquence source, la syntaxe est :
[f(x) for x in sequence if condition]
Notez que les expressions conditionnelles, utilisées dans la syntaxe if/else des compréhensions de liste, sont distinctes de la construction if utilisée pour filtration. Les expressions conditionnelles permettent de choisir entre deux expressions basées sur une condition, similaire à l'opérateur ternaire ? : trouvé dans d'autres langages. Par exemple :
value = 123 print(value, 'is', 'even' if value % 2 == 0 else 'odd')
Cet exemple imprime si la valeur est paire ou impaire à l'aide d'une expression conditionnelle.
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