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