【发布时间】:2017-03-28 02:23:48
【问题描述】:
我有一个在 beautifulsoup 操作后生成的列表。它有由括号中的数字分隔的字符串,我想将其拆分为内部列表。例如我有
L1=['alpha(1) beta(4)','delta(5) gamma(6)']
这需要转换成
[[‘alpha’, ‘beta’],[‘gamma’, ‘delta’]]
我从这个开始
[re.split(r'\(\d\)',item) for item in L1]
但这会在最后一项中创建额外的空间,然后在最后生成一个空白项。
[['alpha', ' beta', ''], ['delta', ' gamma', '']]
所以我在这样的代码中再添加一行
L1=[re.split(r'\(\d\)',item) for item in L1]
[[x.strip() for x in y if x] for y in L1]
这给了我想要的
[['alpha', 'beta'], ['delta', 'gamma']]
所以我的查询是
- 为什么它只使用命令的第一行来完成它的工作。为什么要创建最后一个元素。
- 有没有更好的方法通过单一且更简单的正则表达式来实现这一目标?
【问题讨论】: