Python 3:获取字符串中出现的第二个到最后一个索引

2024-04-20 09:48:18 发布

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

我有一个字符串abcdabababcebc如何获得b第二次到最后一次出现的索引?我搜索并找到了rfind(),但这不起作用,因为它是最后一个索引,而不是倒数第二个索引。

我正在使用Python 3。


Tags: 字符串倒数rfindabcdabababcebc
3条回答

有一种方法:

>>> def find_second_last(text, pattern):
...   return text.rfind(pattern, 0, text.rfind(pattern))
... 
>>> find_second_last("abracadabra", "a")
7

这将使用可选的开始和结束参数在找到第一个匹配项后查找第二个匹配项。

注意:这不会执行任何类型的健全性检查,如果文本中至少没有出现两个模式,则会爆炸。

>>> s = "abcdabababcebc"
>>> s[:s.rfind("b")].rfind("b")
9 

枚举所有索引并选择所需的索引

In [19]: mystr = "abcdabababcebc"

In [20]: inds = [i for i,c in enumerate(mystr) if c=='b']

In [21]: inds
Out[21]: [1, 5, 7, 9, 12]

In [22]: inds[-2]
Out[22]: 9

相关问题 更多 >