我有四个字符串,其中任何一个都可以为空。我需要将它们连接成一个字符串,并在它们之间留有空格。如果我使用:
new_string = string1 + ' ' + string2 + ' ' + string3 + ' ' + string4
如果string1
为空,结果将是新字符串开头的空白。另外,如果string2
和string3
为空,则我有三个空格。
当我不需要空格时,如何轻松地加入它们?
Answers:
如果您知道字符串没有前导/尾随空格:
>>> 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'
并且如果任何字符串具有非前导/尾随空格,则可能需要更加努力。请说明您实际拥有的是什么。
strings = ['foo','','bar','moo']
' '.join([x for x in strings if x is not ''])
'foo bar moo'
!=
而不是is not
。它可能有效,但不能保证。或只是使用[x for x in strings if x]
。
is not
如果您实际上不想检查两个对象是否相同,则切勿将其用于非单个对象!
df.apply(", ".join(filter(None, ...)), axis=1)
。一个如何传递filter函数的第二个参数?