/ / la bonne expression pour [“A” pour x dans la plage (0,10) ou “B” si x == 9] en python? - python, compréhension de liste, raccourci

la bonne expression pour [“A” pour x dans la plage (0,10) ou “B” si x == 9] en python? - python, compréhension de liste, raccourci

Je veux exprimer x is in range(0,10), if x == 9 then "B", else "A", quelle est la bonne expression pour que dans une ligne? Merci!

["A" for x in range(0,10) if x == 9 or "B"]    # wrong
["A" for x in range(0,10) or "B" if x == 9]    # wrong

Réponses:

3 pour la réponse № 1

Essaye ça:

["A" if x == 9 else "B" for x in range(0,10)]

2 pour la réponse № 2

Alternativement:

>>> ["A"]*9+["B"]
["A", "A", "A", "A", "A", "A", "A", "A", "A", "B"]

2 pour la réponse № 3

Une autre option:

>>> d = {9:"B"}
>>> [d.get(n, "A") for n in range(10)]
["A", "A", "A", "A", "A", "A", "A", "A", "A", "B"]

C’est un peu plus utile si vous avez plusieurs B valeurs à insérer.


0 pour la réponse № 4

["B" si x == 9 sinon "A" pour x dans l'intervalle (0,10)]