/ / a expressão correta para ["A" para x no intervalo (0,10) ou "B" se x == 9] em python? - python, compreensão de lista, atalho

a expressão certa para [“A” para x no intervalo (0,10) ou “B” se x == 9] em python? - python, compreensão de lista, atalho

Eu quero expressar x is in range(0,10), if x == 9 then "B", else "A", qual é a expressão certa para isso em uma linha? Obrigado!

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

Respostas:

3 para resposta № 1

Tente isto:

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

2 para resposta № 2

Alternativamente:

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

2 para resposta № 3

Outra opção:

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

Isso é um pouco mais útil se você tiver vários B valores a serem inseridos.


0 para a resposta № 4

["B" se x == 9 ou mais "A" para x no intervalo (0,10)]