Maison >développement back-end >Tutoriel Python >Comment puis-je utiliser efficacement la logique if/else dans les compréhensions de listes Python ?

Comment puis-je utiliser efficacement la logique if/else dans les compréhensions de listes Python ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-20 10:12:10724parcourir

How Can I Effectively Use if/else Logic within Python List Comprehensions?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn