我尝试使用Python的预定义函数(如find和index)查看一个字符串是否存在于另一个字符串中。。在
现在我的函数有两个字符串作为参数,一个是我们要搜索的字符串,另一个字符串是我们在第一个字符串中要查找的字符串。在
如果第二个字符串存在于第一个字符串中,我希望函数返回它在第一个字符串中出现的所有位置。在
现在,我的函数能够找到第一个匹配项并返回一个索引,但是我希望找到多个匹配项,而不仅仅是第一个。在
以下是我的代码:def multi_find (s, r):
s_len = len(s)
r_len = len(r)
if s_len < r_len:
n = -1
else:
m = s_len - r_len
n = -1 # assume r is not yet found in s
i = 0
while n == -1 and i < m:
# search for r in s until not enough characters are left
if s[i:i + r_len] == r:
n = i
else:
i = i + 1
print (n)
multi_find("abcdefabc. asdli! ndsf acba saa abe?", "abc")
现在,这将只输出“0”,因为这是abc首先发生的地方。。如何让它返回“0”和“6”(第二次出现的开始),基本上在找到一个之后继续检查。在
我在想什么,比如创建一个列表,列出它发生的所有位置,然后将I添加到该列表中,但是当我尝试时,没有任何东西对我有效。在