98 votes

Opérateur ternaire Python sans else

Est-il possible de faire cela sur une seule ligne en Python ?

if <condition>:
    myList.append('myString')

J'ai essayé l'opérateur ternaire :

myList.append('myString' if <condition>)

mais mon IDE ( MyEclipse ) n'a pas aimé, sans un else .

1voto

Vous pouvez faire quelque chose comme ci-dessous. Notez que None n'est à aucun moment annexé à myList .

myList.append('myString') if <condition> else None

De même, Python devrait accepter la phrase ci-dessous.

if <condition>: myList.append('myString')

1voto

poison_pwn Points 26

Je le ferais juste si je veux ajouter des éléments optionnels à une liste basée sur une condition.

nums = [
        1,
        2,
        3 if <condition> else None,
        4,
       ]

# nums now contains values of `None`, so we delete all occurrences of `None`
nums.remove(None)

cela remplace simplement la valeur par None si la condition n'est pas remplie, puis plus tard, il redéfinit simplement la liste sans les valeurs None. De cette façon, ils conservent leur index si la condition est remplie.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X