Python String find() метод с примери
Какво е Python String find()?
Python Намиране на низ () е функция, налична в Python библиотека, за да намерите индекса на първото появяване на подниз от дадения низ. Функцията string find() ще върне -1 вместо да хвърли изключение, ако посоченият подниз не присъства в дадения низ.
Синтаксис на Python намиране на низ ()
Основният синтаксис на Python функцията find() е както следва:
string.find(substring,start,end)
Параметри за метода find().
Ето три параметъра на функцията String find(). Python:
- подниз: Поднизът, който искате да търсите в дадения низ.
- Начало: (по избор) Началната стойност, от която ще започне търсенето на подниз. По подразбиране е 0.
- край: (по избор) Крайната стойност, където ще завърши търсенето на подниз. По подразбиране стойността е дължината на низа.
Пример за метод find() със стойности по подразбиране
Параметрите, предадени на Python методът find() са подниз, т.е. низът, който искате да търсите, да започнете и да завършите. Началната стойност е 0 по подразбиране, а крайната стойност е дължината на низа.
В този пример ще използваме метода find() в Python със стойности по подразбиране.
Методът find() ще търси подниза и ще даде позицията на първото срещане на подниза. Сега, ако поднизът присъства няколко пъти в дадения низ, той все пак ще ви върне индекса или позицията на първия.
Пример:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials"))
Изход:
The position of Tutorials is at: 12
Пример за find() с използване на начален аргумент
Можете да търсите подниза в дадения низ и да посочите началната позиция, от която да започне търсенето. Стартовият параметър може да се използва за същото.
Примерът ще определи началната позиция като 15 и find() в Python ще започне търсенето от позиция 15. Тук крайната позиция ще бъде дължината на низа и ще търси до края на низа от 15 позиции нататък.
Пример:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 20))
Изход:
The position of Tutorials is at 48
Пример за find() с използване на начални и крайни аргументи
Използвайки началния и крайния параметър, ще се опитаме да ограничим търсенето, вместо да търсим целия низ.
Пример:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 5, 30))
Изход:
The position of Tutorials is at 12
Пример за метод find() За намиране на позицията на даден подниз в низ
Знаем, че find() ни помага да намерим индекса на първото срещане на подниз. Връща -1, ако поднизът не присъства в дадения низ. Примерът по-долу показва индекса, когато низът присъства и -1, когато не намерим подниза, който търсим.
Пример:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Best site is at:", mystring.find("Best site", 5, 40))
print("The position of Guru99 is at:", mystring.find("Guru99", 20))
Изход:
The position of Best site is at: 27 The position of Guru99 is at: -1
Python низ rfind()
- Python функцията rfind() е подобна на функцията find() с единствената разлика, че rfind() дава най-високия индекс за дадения подниз, а find() дава най-ниския, т.е. първия индекс. Както rfind(), така и find() ще върнат -1, ако поднизът не присъства.
В примера по-долу имаме низ „Запознайте се със сайта за уроци на Guru99. Най-добрият сайт за Python Помагала!“ и ще се опита да намери позицията на подниза Уроци с помощта на find() и rfind(). Появата на Уроци в низа е два пъти.
Ето пример, при който се използват както find(), така и rfind().
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
print("The position of Tutorials using rfind() : ", mystring.rfind("Tutorials"))
Изход:
The position of Tutorials using find() : 12 The position of Tutorials using rfind() : 48
Резултатът показва, че find() дава индекса на първия подниз Tutorials, който получава, а rfind() дава последния индекс на подниза Tutorials.
Python индекс на низ ()
- Python string index() е функция, която ще ви даде позицията на подниза, даден точно като find(). Единствената разлика между двете е, че index() ще хвърли изключение, ако поднизът не присъства в низа и find() ще върне -1.
Ето един работещ пример, който показва поведението на index() и find().
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
print("The position of Tutorials using index() : ", mystring.index("Tutorials"))
Изход:
The position of Tutorials using find() : 12 The position of Tutorials using index() : 12
Получаваме една и съща позиция както за find(), така и за index(). Нека видим пример, когато дадения подниз не присъства в низа.
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("test"))
print("The position of Tutorials using index() : ", mystring.index("test"))
Изход:
The position of Tutorials using find() : -1
Traceback (most recent call last):
File "task1.py", line 3, in <module>
print("The position of Tutorials using index() : ", mystring.index("test"))
ValueError: substring not found
В горния пример се опитваме да намерим позицията на подниза „test“. Поднизът не присъства в дадения низ и следователно, използвайки find(), получаваме позиция като -1, но за index(), той извежда грешка, както е показано по-горе.
За да намерите общото появяване на подниз
За да намерим общия брой пъти, когато поднизът се е появил в дадения низ, ще използваме функцията find() в Python. Ще премине през низа с помощта на for-цикъл от 0 до края на низа. Ще използва параметъра startIndex за find().
Променливите startIndex и count ще бъдат инициализирани на 0. Inside for –loop ще провери дали поднизът присъства в низа, даден с помощта на find() и startIndex като 0.
Стойността, върната от find(), ако не е -1, ще актуализира startIndex до индекса, където е намерен низът, и също ще увеличи стойността на броя.
Ето работния пример:
my_string = "test string test, test string testing, test string test string"
startIndex = 0
count = 0
for i in range(len(my_string)):
k = my_string.find('test', startIndex)
if(k != -1):
startIndex = k+1
count += 1
k = 0
print("The total count of substring test is: ", count )
Изход:
The total count of substring test is: 6
Oбобщение
- - Python методът string find() помага да се намери индексът на първото срещане на подниза в дадения низ. Ще върне -1, ако поднизът не присъства.
- Параметрите, предадени на Python методът за намиране на подниз е подниз, т.е. низът, който искате да търсите, начало и край. Началната стойност е 0 по подразбиране, а крайната стойност е дължината на низа.
- Можете да търсите подниза в дадения низ и да посочите началната позиция, от която да започне търсенето. Стартовият параметър може да се използва за същото.
- Използвайки началния и крайния параметър, ще се опитаме да ограничим търсенето, вместо да търсим целия низ.
- - Python функция rfind() е подобна на функцията find() с единствената разлика, че rfind() дава най-високия индекс за дадения подниз, а find() дава най-ниския, т.е. първия индекс. Както rfind(), така и find() ще върнат -1, ако поднизът не присъства.
- - Python string index() е още една функция, която ще ви даде позицията на подниза, даден точно като find(). Единствената разлика между двете е, че index() ще хвърли изключение, ако поднизът не присъства в низа и find() ще върне -1.
- Можем да използваме find(), за да намерим броя на общото появяване на подниз в даден низ.
» Научете повече за Python Разделяне на низове()
