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 Разделяне на низове()

Обобщете тази публикация с: