Получение индекса для строк: str.index (), str.rindex () и str.find (), str.rfind ()

String также имеет index метод , но и более продвинутые варианты и дополнительное str.find . Для обоих из них есть дополнительный обратный метод.

 astring = 'Hello on StackOverflow'
astring.index('o')  # 4
astring.rindex('o') # 20

astring.find('o')   # 4
astring.rfind('o')  # 20

 

Разница между index / rindex и find / rfind это то , что происходит , если подстрока не найдена в строке:

 astring.index('q') # ValueError: substring not found
astring.find('q')  # -1

 

Все эти методы позволяют начальный и конечный индексы:

 astring.index('o', 5)    # 6
astring.index('o', 6)    # 6 - start is inclusive
astring.index('o', 5, 7) # 6
astring.index('o', 5, 6) #  - end is not inclusive
 

ValueError: подстрока не найдена

 astring.rindex('o', 20) # 20 
astring.rindex('o', 19) # 20 - still from left to right

astring.rindex('o', 4, 7) # 6