提取Python列表中字符之间的文本

2024-10-01 15:35:07 发布

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

在用for循环遍历列表后,为了只提取几个值,我得到:

['Dell Precision 380 (3.73 GHz, Pentium Exteme Edition 965)', '11.6']
['Dell Precision 380 (3.8 GHz, Pentium 4 processor 670)', '11.5']

我需要做的是提取每行括号之间的信息并将其放入另一个列表中,但我正在努力寻找正确的代码。在

我尝试过这里描述的方法:How do I find the string between two special characters?,但是我得到一个错误,因为字符串在列表中。在

我也看了Re的文档,但我不确定如何在这种情况下应用它。在


Tags: 方法代码信息列表forprocessordodell
3条回答

实现这一点的“更强大”方法是使用regex。 像这样:

import re
regex = re.compile("\((.*)\)")
details = list(for regex.findall(text)[0] for text in origin_list if regex.search(text))
a = ['Dell Precision 380 (3.73 GHz, Pentium Exteme Edition 965)', '11.6']
b = a[0] # Get 'Dell Precision 380 (3.73 GHz, Pentium Exteme Edition 965)'
c = b[b.find('(') + 1: b.find(')')] # Get '3.73 GHz, Pentium Exteme Edition 965'

考虑到这是一个标准结构,您可以完全避免regex部分,只需执行以下操作:

假设您已经提取了要处理的字符串:

s = 'Dell Precision 380 (3.73 GHz, Pentium Exteme Edition 965)'

您可以在第一个(上执行拆分,然后使用切片删除不需要的内容:

^{pr2}$

虽然上述结构的依赖性总是落在括号之间,为了避免出现问题,您可以:

s.partition('(')[2][:-1]

如@JonClements评论所述。在

相关问题 更多 >

    热门问题