gpt4 book ai didi

Python正则表达式分隔以括号中的数字结尾的字符串

转载 作者:太空宇宙 更新时间:2023-11-03 12:56:17 25 4
gpt4 key购买 nike

我有一个在 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']]

所以我的问题是

  1. 为什么它只使用命令的第一行来完成它所做的事情。为什么创建最后一个元素。
  2. 是否有更好的方法通过单一且更简单的正则表达式实现此目的?

最佳答案

我会使用拆分:

print([[j.split("(")[0] for j in  i.split()] for i in L1])

返回:

[['alpha', 'beta'], ['delta', 'gamma']]

关于Python正则表达式分隔以括号中的数字结尾的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40588906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com