Finding the Index of a character within a string

12,595

Try the string.find method.

s = "mouse"
animal_letter = s.find('s')
print animal_letter

It returns the 0-based index (0 is the first character of the string) or -1 if the pattern is not found.

>>> "hello".find('h')
0
>>> "hello".find('o')
4
>>> "hello".find("darkside")
-1
Share:
12,595
codeman99
Author by

codeman99

Updated on November 25, 2022

Comments

  • codeman99
    codeman99 over 1 year

    This may be worded incorrectly because I'm a wee beginner, but if I have a string how to I find a certain characters index like you can with the .index thing in lists.

    With a list it makes sense:

     l = ["cat", "dog", "mouse"]
    
     animal = l.index["dog"] 
    

    will return [1], but how do I do the same thing with strings . . .

     s = "mouse"
    
     animal_letter = s.index["s"]
    

    it says there is no attribute .index

    Is there another way I can do this?

    • dansalmo
      dansalmo over 10 years
      animal_letter = s.index("s") don't used brackets. l.index["dog"] does not work either.
    • Will P
      Will P over 10 years
      Can't find a definitive answer to this, is there a difference between my method and yours? s.find vs s.index?
  • emkarachchi
    emkarachchi about 4 years
    Does this work in scenarios like "hello".find('l') . I think it will return first l letter in the string.
  • emkarachchi
    emkarachchi about 4 years
    stackoverflow.com/a/11122355/7704650 hope this will work in those kind of scenarios.