📅  最后修改于: 2023-12-03 15:37:46.064000             🧑  作者: Mango
在编程过程中,我们经常需要在字符串中查找一个或多个子字符串,这个时候就需要用到查找函数。在本文中,我们将介绍如何编写一个函数来在给定字符串中查找多个子字符串。
def find_multi_substrings(string, substrings):
"""
在给定字符串中查找多个子字符串。
:param string: 给定的字符串。
:type string: str
:param substrings: 需要查找的子字符串列表。
:type substrings: list of str
:return: 所有子字符串在给定字符串中的起始索引位置。
:rtype: list of int
"""
下面是一个Python实现的示例代码:
def find_multi_substrings(string, substrings):
positions = []
for substring in substrings:
start = 0
while True:
start = string.find(substring, start)
if start == -1:
break
positions.append(start)
start += len(substring)
return positions
该函数首先创建了一个空列表positions
,用来保存每个子字符串的起始索引位置。
然后,它遍历每个子字符串,使用str.find()
函数在string
中查找该子字符串的位置。如果找到了,则将其位置添加到positions
列表中。
注意,str.find()
函数的第二个参数start
表示查找的起始位置,这里需要不断累加该参数的值,以查找所有出现的子字符串。
最后,函数返回positions
列表,其中保存了所有子字符串在给定字符串中的起始索引位置。
下面是一个简单的测试函数,用来验证find_multi_substrings()
函数的正确性。
def test_find_multi_substrings():
string = 'the quick brown fox jumps over the lazy dog'
substrings = ['the', 'fox', 'dog']
assert find_multi_substrings(string, substrings) == [0, 16, 40]
该函数首先定义了一个测试字符串string
和一个包含三个子字符串的列表substrings
。
然后,它调用find_multi_substrings()
函数,并使用assert
语句来判断函数返回值是否与预期结果一致。
在本文中,我们介绍了如何编写一个函数来在给定字符串中查找多个子字符串。通过str.find()
函数和循环,我们可以轻松地查找多个子字符串,并返回它们在字符串中的位置。希望这个函数能够帮助到你!