我收集了一些测试数据,并在如何从效率方面正确清理它方面苦苦挣扎。
test_data = ['\r\n \r\n ',
'\r\n ',
'Reine Baumwolle',
'\r\n ',
'\r\n \r\n ',
'\r\n ',
'Kontrastblende am Ausschnitt',
'\r\n ',
'\r\n \r\n ',
'\r\n ',
'Pflegeleicht',
'\r\n ',
'\r\n \r\n ']
通过正则表达式到目前为止我可以清理我的数据:
import re
rep = ['\n','\t','\r']
for y in rep:
test_data = [r.replace(y, '') for r in test_data]
我的中间结果是这样的:
[' ',
' ',
'Reine Baumwolle',
' ',
' ',
' ',
'Kontrastblende am Ausschnitt',
' ',
' ',
' ',
'Pflegeleicht',
' ',
' ']
我如何扩展我的函数来清除所有不必要的-空格和逗号,以便只获得一个字符串,如下所示:
预期结果:
test_data = 'Reine Baumwolle, Kontrastblende am Ausschnitt, Pflegeleicht'
不带逗号的或:
test_data = 'Reine Baumwolle Kontrastblende am Ausschnitt Pflegeleicht'
发布于 2018-06-03 01:09:20
使用list comprehension.
Ex:
test_data = ['\r\n \r\n ', '\r\n ', 'Reine Baumwolle', '\r\n ','\r\n \r\n ','\r\n ','Kontrastblende am Ausschnitt','\r\n ','\r\n \r\n ','\r\n ','Pflegeleicht','\r\n ','\r\n \r\n ']
print( " ".join([i for i in test_data if i.strip()]) )
print( ", ".join([i for i in test_data if i.strip()]) ) #Comma Seperated.
输出:
Reine Baumwolle Kontrastblende am Ausschnitt Pflegeleicht
Reine Baumwolle, Kontrastblende am Ausschnitt, Pflegeleicht
str.strip
删除任何前导空格或尾随空格。发布于 2018-06-03 01:10:41
看起来你只需要过滤掉字符串,这些字符串在从空格中去掉后就不会留下任何东西了。
>>> ' '.join(s for s in test_data if s.strip())
'Reine Baumwolle Kontrastblende am Ausschnitt Pflegeleicht'
https://stackoverflow.com/questions/50659242
复制相似问题