这是我的建议:
s='Test string. removing data. keyword extraction. data number. 11123. final answer.'
temp = [i.strip() for i in s.split('.')]
res = [temp[temp.index(i)+1] for i in lst]
print(res)
输出:
['removing data', '11123']
它的作用:
temp = [i.strip() for i in s.split('.')]
s.split('.') 将您的字符串转换为字符串列表,按点分隔。因此,您将每个句子分开:
['Test string', ' removing data', ' keyword extraction', ' data number', ' 11123', ' final answer', '']
这被放在list comprehension 中,它从上面的列表中创建一个带有剥离值的新列表(i.strip() 删除了前导和尾随空格)。所以你最终得到:
['Test string', 'removing data', 'keyword extraction', 'data number', '11123', 'final answer', '']
在最后一步有两个有趣的事情:
- 我们使用list.index() 方法,它为我们提供了搜索项目的索引。比获得下一个元素更容易。
- 当您有一个大字符串和几个搜索项目时,这会很快,但您应该小心,因为如果您正在搜索不存在的项目,它会失败。
直截了当更安全:
res = [temp[idx+1] for idx, val in enumerate(temp) if val in lst]
有关枚举的更多信息,请查看documentation。