我有一些测试数据被刮掉,并且在如何在效率方面正确地清理它方面很困难。
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'
答案 0 :(得分:0)
使用list comprehension.
<强>实施例强>
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
删除任何前导或尾随空格。答案 1 :(得分:0)
看起来你只需要过滤掉从空格中删除后没有任何东西的字符串。
>>> ' '.join(s for s in test_data if s.strip())
'Reine Baumwolle Kontrastblende am Ausschnitt Pflegeleicht'