首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从python中存储在列表中的字符串中清除数据

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

Stack Overflow用户
提问于 2018-06-03 01:06:15
回答 2查看 132关注 0票数 1

我收集了一些测试数据,并在如何从效率方面正确清理它方面苦苦挣扎。

代码语言:javascript
复制
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    ']

通过正则表达式到目前为止我可以清理我的数据:

代码语言:javascript
复制
import re
rep = ['\n','\t','\r']
for y in rep:
test_data = [r.replace(y, '') for r in test_data]

我的中间结果是这样的:

代码语言:javascript
复制
['            ', 
'          ',
'Reine Baumwolle',
'        ',
'              ',
'          ',
'Kontrastblende am Ausschnitt',
'        ',
'              ',
'          ',
'Pflegeleicht',
'        ',
'          ']

我如何扩展我的函数来清除所有不必要的-空格和逗号,以便只获得一个字符串,如下所示:

预期结果:

代码语言:javascript
复制
test_data = 'Reine Baumwolle, Kontrastblende am Ausschnitt, Pflegeleicht'

不带逗号的

代码语言:javascript
复制
test_data = 'Reine Baumwolle Kontrastblende am Ausschnitt Pflegeleicht'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-03 01:09:20

使用list comprehension.

Ex:

代码语言:javascript
复制
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.

输出:

代码语言:javascript
复制
Reine Baumwolle Kontrastblende am Ausschnitt Pflegeleicht
Reine Baumwolle, Kontrastblende am Ausschnitt, Pflegeleicht

  • str.strip删除任何前导空格或尾随空格。
票数 0
EN

Stack Overflow用户

发布于 2018-06-03 01:10:41

看起来你只需要过滤掉字符串,这些字符串在从空格中去掉后就不会留下任何东西了。

代码语言:javascript
复制
>>> ' '.join(s for s in test_data if s.strip())
'Reine Baumwolle Kontrastblende am Ausschnitt Pflegeleicht'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50659242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档