Consider I Want to find 2nd occurence of char 'o' in string 'Hello World'(we can see the index would be 7). Can we write using 'index' or 'find' method in python?
Asked
Active
Viewed 60 times
2 Answers
0
you can do it on several ways, here are some of them:
def find_all(a_str, sub):
start = 0
while True:
start = a_str.find(sub, start)
if start == -1: return
yield start
start += len(sub) # use start += 1 to find overlapping matches
string = 'Hello World'
print (list(find_all(string, 'o'))[1])
output:
7
string = 'Hello World'
print([i for i in range(len(string)) if string.startswith('o', i)][1])
output:
7

ncica
- 7,015
- 1
- 15
- 37
0
You can use regex, which also works for substrings, as seen in this question:
import re
indexes = [m.start() for m in re.finditer('o', 'Hello World')] # [4, 7]
print(indexes[1]) # get second occurrence

palvarez
- 1,508
- 2
- 8
- 18