这看起来应该很简单,但我是Python新手,希望以最具Python风格的方式来完成
我想找到对应于字符串中第n次出现的子字符串的索引
一定有和我想做的一样的事情
mystring.find(“子字符串”,第二个)
如何在Python中实现这一点
下面是简单迭代解决方案的一个更具python风格的版本:
def find\n(干草堆,针,n):
开始=干草堆。查找(针)
启动时>;=0和n>;1:
开始=干草堆。查找(针,开始+针)
n-=1
回程起动
示例:
>&燃气轮机&燃气轮机;查找n(“fooo”,“fooo”,2)
6.
如果要查找第n个重叠出现的针,可以按1而不是len(针),如下所示:
def查找重叠(草堆、针、n):
开始=干草堆。查找(针)
启动时>;=0和n>;1:
开始=干草堆。查找(针,开始+1)
n-=1
回程起动
示例:
>&燃气轮机&燃气轮机;查找重叠部分(“foofoo”,“foofoo”,2)
3.
这比Mark的版本更容易阅读,并且不需要拆分版本或导入正则表达式模块的额外内存。它还遵循python禅宗中的一些规则,不同于各种re方法:
- 简单总比复杂好
- 平的比嵌套的好
- 可读性很重要