правильное выражение для ["A" для x в диапазоне (0,10) или "B", если x == 9] в python? - PullRequest
2 голосов
/ 08 июня 2011

Я хочу выразить 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

Ответы [ 4 ]

3 голосов
/ 08 июня 2011

Попробуйте это:

["A" if x == 9 else "B" for x in range(0,10)] 
2 голосов
/ 08 июня 2011

Другая опция:

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

Это немного более полезно, если у вас есть несколько B значений для вставки.

2 голосов
/ 08 июня 2011

В качестве альтернативы:

>>> ['A']*9+['B']
['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'B']
0 голосов
/ 11 июня 2011

['B', если x == 9, иначе 'A' для x в диапазоне (0,10)]

...