Python: конкат строка если условие, иначе ничего не делать
Я хочу объединить несколько строк вместе и добавить последнюю, только если логическое условие истинно. Вот так (A, b и c-строки):
something = a + b + (c if <condition>)
но Python это не нравится. Есть ли хороший способ сделать это без опции еще?
спасибо! :)
4 ответов
попробуйте что-то ниже, не используя else
, он работает путем индексирования пустой строки при условии False (0) и индексирования строки c
когда условие True (1)
something = a + b + ['', c][condition]
Я не уверен, почему вы хотите избежать использования других, иначе код ниже кажется более читаемым
something = a + b + (c if condition else '')
это возможно, но это не очень Pythonic:
something = a + b + c * condition
это будет работать, потому что condition * False
вернутся ''
, а condition * True
возвращает оригинал condition
. Однако здесь вы должны быть осторожны,condition
также может быть 0
или 1
, но любое большее число или любой литерал нарушат код.
есть ли хороший способ сделать это без другое?
Ну, да:
something = ''.join([a, b])
if condition:
something = ''.join([something, c])
но я не знаю, имеете ли вы в виду буквально без другого или без всего утверждения if.