是的。使用s.index('yourstring', start)写一个循环
发现一个大胖子-1后更新……我不是写了一些代码吗???
这是我的赎回尝试,如果需要,它允许不重叠,并在所示范围内进行测试:
>>> def nindex(haystack, needle, n, overlapping=True):
... delta = 1 if overlapping else max(1, len(needle))
... start = -delta
... for _unused in xrange(n):
... start = haystack.index(needle, start+delta)
... return start
...
>>> for n in xrange(1, 11):
... print n, nindex('abcdefacbdea', 'a', n)
...
1 0
2 6
3 11
4
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "<stdin>", line 5, in nindex
ValueError: substring not found
>>> for olap in (True, False):
... for n in (1, 2):
... print str(olap)[0], n, nindex('abababab', 'abab', n, olap)
...
T 1 0
T 2 2
F 1 0
F 2 4
>>> for n in xrange(1, 8):
... print n, nindex('abcde', '', n)
...
1 0
2 1
3 2
4 3
5 4
6 5
7
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "<stdin>", line 5, in nindex
ValueError: substring not found
>>>