2024-04-20 09:48:18 发布
网友
我有一个字符串abcdabababcebc如何获得b第二次到最后一次出现的索引?我搜索并找到了rfind(),但这不起作用,因为它是最后一个索引,而不是倒数第二个索引。
abcdabababcebc
b
我正在使用Python 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
有一种方法:
这将使用可选的开始和结束参数在找到第一个匹配项后查找第二个匹配项。
注意:这不会执行任何类型的健全性检查,如果文本中至少没有出现两个模式,则会爆炸。
枚举所有索引并选择所需的索引
相关问题 更多 >
编程相关推荐