Я хочу выразить x is in range(0,10), if x == 9 then "B", else "A", каково правильное выражение для этого в строке? Спасибо!
x is in range(0,10), if x == 9 then "B", else "A"
["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
Попробуйте это:
["A" if x == 9 else "B" for x in range(0,10)]
Другая опция:
>>> d = {9:"B"} >>> [d.get(n, "A") for n in range(10)] ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'B']
Это немного более полезно, если у вас есть несколько B значений для вставки.
B
В качестве альтернативы:
>>> ['A']*9+['B'] ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'B']
['B', если x == 9, иначе 'A' для x в диапазоне (0,10)]