Quand la syntaxe de compréhension de liste nécessite-t-elle un opérateur ternaire en Python ?

Patricia Arquette
Libérer: 2024-10-22 12:47:39
original
513 Les gens l'ont consulté

When Does List Comprehension Syntax Require a Ternary Operator in Python?

Énigme de compréhension de liste : filtrage conditionnel dans les itérables

En Python, la compréhension de liste offre un moyen concis de créer des listes basées sur des itérables existants. Cependant, une question s'est posée concernant une compréhension de liste impliquant une instruction if.

L'objectif était de comparer deux itérables, a et b, et d'imprimer uniquement les éléments qui apparaissaient dans les deux. Le code prévu ressemblait à ceci :

<code class="python">print([y if y not in b for y in a])</code>
Copier après la connexion

Malheureusement, ce code a entraîné une erreur de syntaxe. Le problème réside dans l’ordre de la construction if-else. En Python, l'instruction conditionnelle doit venir après la boucle for dans la compréhension de liste, sauf si elle est utilisée comme opérateur ternaire.

Syntaxe correcte :

<code class="python">[y for y in a if y not in b]</code>
Copier après la connexion

Ce code itère à travers chaque élément y dans a. Si y n'est pas trouvé dans b, il est ajouté à la liste. La liste résultante contiendra les éléments qui apparaissent à la fois dans a et b.

Syntaxe de l'opérateur ternaire alternatif :

<code class="python">[y if y not in b else other_value for y in a]</code>
Copier après la connexion

Ce code utilise l'opérateur ternaire pour spécifier un valeur alternative (other_value) au cas où y ne serait pas trouvé dans b. Cette approche est moins courante et généralement utilisée lorsqu'une valeur par défaut est nécessaire.

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
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