如何从一个特定的索引开始?

2024-10-01 07:39:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用迭代器来覆盖一个特定索引中的字符串,而不是开始,不使用切片。有办法吗?我使用的是python3.2

编辑:我需要编写一个生成器函数,它有两个参数:由字符组成的iterable上的迭代器(可能是无限的)和一个模式。 函数需要返回iterable中模式开始出现的索引。剩下的问题我把生成器命名为g。 如果

exmaple:字符串:abababab,图案:abab

因此我们将得到:

下一个(g)

0

下一个(g)

下一个(g)


Tags: 函数字符串编辑参数模式切片iterable字符
1条回答
网友
1楼 · 发布于 2024-10-01 07:39:04

以下生成器函数将返回您请求的输出:

def geniter(instring, pattern):
    start=0
    while start < len(instring):
        nxtidx = instring.find(pattern, start)
        if nxtidx != -1:
            yield nxtidx
            start = nxtidx + 1
        else:
            start = len(instring)

{{cd2>然后使用{cd2>重复调用。我不认为我能保证它能以O(m)的效率运行;关于这个问题,我只是不知道。在

相关问题 更多 >