Python 3.x 获取字符串中第n次出现的字母(python)

Python 3.x 获取字符串中第n次出现的字母(python),python-3.x,string,find,Python 3.x,String,Find,假设有一个字符串“abcd#abcd#a#” 如何获取第二次出现的“#”的索引,并将其输出为9? 由于使用生成器表达式,第二次出现的“#”的位置是9: text = "abcd#abcd#a#" gen = (i for i, l in enumerate(text) if l == "#") next(gen) # skip as many as you need 4 next(gen) # get result 9 作为一项功能: def index_for_occurrence(te

假设有一个字符串
“abcd#abcd#a#”

如何获取第二次出现的“#”的索引,并将其输出为9?
由于使用生成器表达式,第二次出现的“#”的位置是9

text = "abcd#abcd#a#"
gen = (i for i, l in enumerate(text) if l == "#")

next(gen) # skip as many as you need
4

next(gen) # get result
9
作为一项功能:

def index_for_occurrence(text, token, occurrence):
    gen = (i for i, l in enumerate(text) if l == token)
    for _ in range(occurrence - 1):
        next(gen)
    return next(gen)
结果:

index_for_occurrence(text, "#", 2)
9

同样,在生成器代码中,我们可以使用:
n=input();对于范围(0,n-1)中的i:下一个(gen);print(next(gen))
如果您解释了您提供的代码如何回答问题,这将是一个更好的答案。
index_for_occurrence(text, "#", 2)
9