Подтвердить что ты не робот

Объединение нескольких строк, если они не пусты в Python

У меня есть четыре строки, и любой из них может быть пустым. Мне нужно объединить их в одну строку с пробелами между ними. Если я использую:

new_string = string1 + ' ' + string2 + ' ' + string3 + ' ' + string4

Результат - пустое место в начале новой строки, если string1 пусто. Кроме того, у меня есть три пробела, если string2 и string3 пусты.

Как я могу легко присоединиться к ним без пробелов, когда они мне не нужны?

4b9b3361

Ответ 1

>>> strings = ['foo','','bar','moo']
>>> ' '.join(filter(None, strings))
'foo bar moo'

Используя None в вызове filter(), он удаляет все элементы фальши.

Ответ 2

Если вы ЗНАЕТЕ, что строки не имеют начального/конечного пробела:

>>> strings = ['foo','','bar','moo']
>>> ' '.join(x for x in strings if x)
'foo bar moo'

иначе:

>>> strings = ['foo ','',' bar', ' ', 'moo']
>>> ' '.join(x.strip() for x in strings if x.strip())
'foo bar moo'

и если какая-либо из строк имеет не ведущее/конечное пустое пространство, вам может потребоваться еще больше работать. Просьба уточнить, что именно вы на самом деле имеете.

Ответ 3

strings = ['foo','','bar','moo']
' '.join([x for x in strings if x is not ''])
'foo bar moo'