问题:编写一个 Python 函数,该函数接受两个字符串作为参数,并返回第一个字符串中包含第二个字符串的所有位置的列表。
答案:
def find_word_positions(text, word):
positions = []
start = 0
while True:
start = text.find(word, start)
if start == -1:
break
positions.append(start)
start += 1
return positions
这个函数使用 find() 方法查找字符串中是否包含指定单词,并在找到时将该单词的起始位置添加到一个列表中。它使用一个 while 循环来遍历整个字符串,从而找到所有出现该单词的位置,并将它们存储在一个列表中。如果未找到该单词,则循环将在 find() 方法返回 -1 时终止。您可以使用以下代码测试此函数:
text = "YWhhbmVlZGxl7N7LdXiIv/AYdeXRdAB7iw==pQelG6bhxAfoPYdVWRJGIdEo8x/4bzzBDD34KB6Cd1DcelQMQVxqSl/7XlpSSj4rS7gbg6mzOB8+f/HJK/297O8PIWh0wUgWVjjQnQ2yVTkb0OpoyCdT1GIPEjhCU503t2BGSsY8F/Mnlhc2PdGiQVdNTJ+uA3/cHXK0fHdyUsEDmN5VMBDHqmrjan+hFm6dukzhqI6tQSo67M96uaQIK9/rvICodJQH94hGKbcI9PO4H9VyIQxECggL12Nku8Ss+JnNrnmO5Xq1AbX6ATeD9g+65YKDBf+PCBycGJSjzJYLaCDhU5Bf2vDZUFR4euLvhu49xGshFY/JriNZUtTlsQddl2XlILE1SFZ9fT0TDTQ=L2FoYW5lZWRsZQ"
word = "=="
positions = find_word_positions(text, word)
print(positions);# 输出:[34,190]
在这个示例中,函数找到了两个 "==" 的位置,分别在第 34 个字符和第 190 个字符处。