Maison > développement back-end > Tutoriel Python > Comment puis-je utiliser efficacement les compréhensions de listes pour les affectations conditionnelles en Python ?

Comment puis-je utiliser efficacement les compréhensions de listes pour les affectations conditionnelles en Python ?

DDD
Libérer: 2024-12-20 15:07:12
original
652 Les gens l'ont consulté

How Can I Efficiently Use List Comprehensions for Conditional Assignments in Python?

Utilisation des compréhensions de liste pour les affectations conditionnelles

Dans une discussion récente, un programmeur a rencontré un défi lors de la conversion d'une boucle for avec un if/ sinon structurez-vous en une compréhension de liste concise. Le segment de code d'origine ressemblait à :

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

L'intention était d'attribuer une chaîne vide aux éléments de la liste de résultats si les éléments correspondants dans xs étaient Aucun et d'appliquer une fonction f aux éléments non-Aucun.

La tentative initiale de création d'une compréhension de liste a échoué avec une SyntaxError :

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

Pour utiliser avec succès les compréhensions de liste pour cette tâche, la syntaxe correcte est :

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

Cette modification maintient l'ordre de la vérification if/else, ce qui est essentiel pour une évaluation correcte.

Comprendre la syntaxe de compréhension de liste

En général, les compréhensions de listes avec affectations conditionnelles respectent ce qui suit syntaxe :

[f(x) if condition else g(x) for x in sequence]
Copier après la connexion

où :

  • f(x) et g(x) représentent des expressions ou des fonctions à appliquer aux éléments en fonction de la condition.
  • la condition détermine si f(x) ou g(x) sera évalué.

De plus, pour les compréhensions de listes qui impliquent uniquement filtrant les éléments en fonction d'une condition, la syntaxe est :

[f(x) for x in sequence if condition]
Copier après la connexion

Expressions conditionnelles au-delà de la compréhension de liste

Il est à noter que les expressions conditionnelles comme celles utilisées dans la compréhension de liste ne sont pas exclusifs à cette construction. Ils peuvent être utilisés dans diverses situations où un choix entre deux valeurs d'expression est requis en fonction d'une condition, remplissant le même objectif que l'opérateur ternaire ? : dans d'autres langues.

Un exemple d'expression conditionnelle en dehors d'un compréhension de la liste :

value = 123
print(value, 'is', 'even' if value % 2 == 0 else 'odd')
Copier après la connexion

Cette expression évalue si la valeur est divisible par 2 et imprime la chaîne correspondante.

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal