Gor*_*ran 58 python string join
我有四个字符串,其中任何一个都可以为空.我需要将它们连接成一个字符串,它们之间有空格.如果我使用:
new_string = string1 + ' ' + string2 + ' ' + string3 + ' ' + string4
Run Code Online (Sandbox Code Playgroud)
如果string1为空,结果是新字符串开头的空格.另外,我有三个空格,如果string2和string3是空的.
当我不需要时,如何在没有空格的情况下轻松加入它们?
Thi*_*ter 162
>>> strings = ['foo','','bar','moo']
>>> ' '.join(filter(None, strings))
'foo bar moo'
Run Code Online (Sandbox Code Playgroud)
通过None在filter()调用中使用,它将删除所有有缺陷的元素.
Joh*_*hin 19
如果您知道字符串没有前导/尾随空格:
>>> strings = ['foo','','bar','moo']
>>> ' '.join(x for x in strings if x)
'foo bar moo'
Run Code Online (Sandbox Code Playgroud)
除此以外:
>>> strings = ['foo ','',' bar', ' ', 'moo']
>>> ' '.join(x.strip() for x in strings if x.strip())
'foo bar moo'
Run Code Online (Sandbox Code Playgroud)
如果任何字符串具有非前导/尾随空格,您可能需要更加努力地工作.请说明你实际拥有的是什么.