如何去掉两个空格并留下新行?python
如何去掉两个空格并留下新行?是否可以不使用如何去掉两个空格并留下新行?python,python,string,newline,whitespace,strip,Python,String,Newline,Whitespace,Strip,如何去掉两个空格并留下新行?是否可以不使用re 如果我有类似的东西: string = ' foo\nbar spam' 我需要得到: 'foo\nbar spam' '.join(string.split())删除所有空白,包括新行: >>> ' '.join(string.split()) 'foo bar spam' '.join(string.split('')什么都不做 >>> text = ' foo\nbar spam'
re
如果我有类似的东西:
string = ' foo\nbar spam'
我需要得到:
'foo\nbar spam'
'.join(string.split())
删除所有空白,包括新行:
>>> ' '.join(string.split())
'foo bar spam'
'.join(string.split('')
什么都不做
>>> text = ' foo\nbar spam'
>>> '\n'.join(' '.join(line.split()) for line in text.split('\n'))
'foo\nbar spam'
这把它分成了几行。然后,它用空格分隔每一行,并用单个空格重新连接。然后它重新连接这些行。可以使用strip或lstrip函数:
line = ' foo\nbar spam'
while ' ' in line:
line = line.replace(' ', ' ')
line = line.strip(' ')
strip
删除字符串开头和结尾的空格,而不是字符串内部的空格。您希望'(3个空格)foo\nbar(6个空格)spam
的输出是什么?@jamylak,只有一个,反正只有一个。@jamylak改变了,错过了关于内部单个空格的要点,很好的捕获-实际上看起来这也快了
text = [' '.join(i.split()) for i in text.split('\n') if not i.isspace()]
text = '\n'.join(text)