如何从列表中获取值并遍历单独的字符串以查找存在该值的索引?

How do I take a value from a list and iterate over a separate string to find the indices where the value is present?

我有如下列表:

a_list=['i']

我也有这个字符串:

a_string='i dont know where i belong but i know i am okay here'

我将如何遍历字符串以找到出现列表项的每个索引?我正在考虑进行线性搜索,但我已经在一个函数中,无法弄清楚如何将列表从外部函数导入到我将定义线性搜索的嵌套函数中。

编辑:一段时间后我找到了答案。我只是不确定函数如何在其他函数中工作。我担心相互嵌套函数会导致错误。

最简单的方法是使用 enumerate 迭代字符串,并在值匹配时获取索引:

>>> [i for i,v in enumerate(a_string) if v==a_list[0]]
[0, 18, 31, 38]

我在上述迭代中使用 a_list[0] 获取第一个值,但您可以轻松地为 a_list

中的多个值添加另一个循环

如果您要查找句子中WORD的索引,那么您可以将句子拆分成一个列表:

>>> a_string='i dont know where i belong but i know i am okay here'
>>> [i for i, x in enumerate(a_string.split(' ')) if x == "i"]
[0, 4, 7, 9]