Joining multiple strings if they are not empty in Python Joining multiple strings if they are not empty in Python python python

Joining multiple strings if they are not empty in Python


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

By using None in the filter() call, it removes all falsy elements.


If you KNOW that the strings have no leading/trailing whitespace:

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

otherwise:

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

and if any of the strings have non-leading/trailing whitespace, you may need to work harder still. Please clarify what it is that you actually have.


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