Tutorial :How can I find the first occurrence of a sub-string in a python string?



Question:

So if my string is "the dude is a cool dude".
I'd like to find the first index of 'dude':

mystring.findfirstindex('dude') # should return 4  

What is the python command for this?
Thanks.


Solution:1

find()

>>> s = "the dude is a cool dude"  >>> s.find('dude')  4  


Solution:2

Quick Overview: index and find

Next to the find method there is as well index. find and index both yield the same result: returning the position of the first occurrence, but if nothing is found index will raise a ValueError whereas find returns -1. Speedwise, both have the same benchmark results.

s.find(t)    #returns: -1, or index where t starts in s  s.index(t)   #returns: Same as find, but raises ValueError if t is not in s  

Additional knowledge: rfind and rindex:

In general, find and index return the smallest index where the passed-in string starts, and rfind and rindex return the largest index where it starts Most of the string searching algorithms search from left to right, so functions starting with r indicate that the search happens from right to left.

So in case that the likelihood of the element you are searching is close to the end than to the start of the list, rfind or rindex would be faster.

s.rfind(t)   #returns: Same as find, but searched right to left  s.rindex(t)  #returns: Same as index, but searches right to left  

Source: Python: Visual QuickStart Guide, Toby Donaldson


Solution:3

to implement this in algorithmic way, by not using any python inbuilt function . This can be implemented as

def find_pos(string,word):        for i in range(len(string) - len(word)+1):          if string[i:i+len(word)] == word:              return i      return 'Not Found'    string = "the dude is a cool dude"  word = 'dude1'  print(find_pos(string,word))  # output 4  

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »