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.