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
Libérer: 2024-12-20 10:12:10
original
860 Les gens l'ont consulté

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 '')
Copier après la connexion

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 '']
Copier après la connexion

entraînera une SyntaxError. La syntaxe correcte est :

[f(x) if x is not None else '' for x in xs]
Copier après la connexion

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]
Copier après la connexion

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')
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal