Я хотел бы заменить значение None
значением 0
или 1
в зависимости от некоторых внешних условий. Мое решение:заменить None из списка с двумя значениями
my_list = [3, 4, 5, None, 6, 7, None, 8, None]
my_list = [(1 if external_string == "ONE" else 0) if v is None else v for v in my_list]
Является ли это питоническим способом решения проблемы? Давайте предположим иметь более двух возможных значений строки, чтобы присвоить, например, 0, если external_string
- "ZERO"
, 1, если external_string
, если "ONE"
, 2, если external_string
- "TWO"
и так далее: в этом случае способ, которым я пишу код выше стилистически приемлемо?
Это неправильный способ, если OP имеет дело с более чем 2-3 вариантами, как указано в OP. – Kasramvd
@ Kasramvd: В этот момент вы используете функцию. –