在Python中,find对象是不可迭代的,这是因为find方法返回的是一个整数值,表示目标字符串在源字符串中的起始位置。它并不是一个可迭代的对象,因此无法使用迭代器进行遍历。
如果想要在字符串中查找多个目标字符串的位置,可以使用其他方法,比如使用循环结合find方法来实现。例如,可以使用一个while循环来重复调用find方法,每次查找到目标字符串后更新起始位置,直到找不到目标字符串为止。
以下是一个示例代码:
def find_all(source, target):
positions = []
start = 0
while True:
position = source.find(target, start)
if position == -1:
break
positions.append(position)
start = position + len(target)
return positions
source_str = "Hello, world! Hello, Python!"
target_str = "Hello"
positions = find_all(source_str, target_str)
print(positions)
输出结果为:[0, 13]
这段代码通过循环调用find方法,将所有目标字符串的起始位置存储在一个列表中,并返回该列表。这样就可以找到源字符串中所有目标字符串的位置了。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云