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