Maison >développement back-end >Tutoriel Python >Comment puis-je utiliser efficacement la logique if/else dans les compréhensions de listes Python ?
Expressions conditionnelles dans les compréhensions de liste pour if/else
En Python, il est possible de traduire des boucles for contenant des instructions if/else en liste compréhensions à l’aide d’expressions conditionnelles. Revisitons un scénario courant :
Boucle For avec if/else :
results = [] for x in xs: results.append(f(x) if x is not None else '')
Ici, nous visons à ajouter le résultat de f(x) aux résultats si x n'est pas Aucun ; sinon, nous ajoutons une chaîne vide.
Tenter de convertir ceci en une compréhension de liste comme suit :
[f(x) for x in xs if x is not None else '']
entraînera une SyntaxError. La syntaxe correcte est :
[f(x) if x is not None else '' for x in xs]
En général, la syntaxe pour les compréhensions de liste avec if/else est :
[f(x) if condition else g(x) for x in sequence]
Où f(x) et g(x) représentent les expressions à évaluer en fonction de la condition.
Les expressions conditionnelles, utilisées dans la syntaxe ci-dessus, ont le même objectif que l'opérateur ternaire ? : trouvé dans d'autres programmations langues. Par exemple :
value = 123 print(value, 'is', 'even' if value % 2 == 0 else 'odd')
Cela exprime de manière concise que si la valeur est divisible par 2, le résultat doit être « pair » ; sinon, ça devrait être "étrange".
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!