从python列表中存储的字符串中清除数据

2024-04-28 13:19:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些测试数据刮和斗争,如何清理它正确的效率方面。你知道吗

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'

Tags: 数据intestfordataam效率逗号
2条回答

使用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删除任何前导或尾随空格。你知道吗

看起来您只需要过滤掉那些从空白中去掉后就什么都没有了的字符串。你知道吗

>>> ' '.join(s for s in test_data if s.strip())
'Reine Baumwolle Kontrastblende am Ausschnitt Pflegeleicht'

相关问题 更多 >