Python Reverse Find in String Python Reverse Find in String python python

Python Reverse Find in String


Your call tell rfind to start looking at index 34. You want to use the rfind overload that takes a string, a start and an end. Tell it to start at the beginning of the string (0) and stop looking at index:

>>> s = "Hello, I am 12! I like plankton but I don't like Baseball.">>> index = 34 #points to the 't' in 'but'>>> index_of_2nd_I = s.rfind('I', 0, index)>>>>>> index_of_2nd_I16


I became curious how to implement looking n times for string from end by rpartition and did this nth rpartition loop:

orig = s = "Hello, I am 12! I like plankton but I don't like Baseball."found = tail = ''nthlast = 2lookfor = 'I'for i in range(nthlast):    tail = found+tail    s,found,end = s.rpartition(lookfor)    if not found:        print "Only %i (less than %i) %r in \n%r" % (i, nthlast, lookfor, orig)        break    tail = end + tailelse:    print(s,found,tail)