Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Python

Мастерство метода String.find() в Python: синтаксис, примеры и альтернативы

Что такое Python String.find()?

Метод String.find() в Python возвращает индекс первого вхождения указанной подстроки в строке. Если подстрока не найдена, он корректно возвращает -1 вместо выброса исключения, что делает его удобным выбором для поиска подстрок.

В этом руководстве вы научитесь эффективно использовать find(), изучите его параметры, сравните с родственными методами и даже подсчитаете, сколько раз подстрока появляется.

Синтаксис Python string find()

Сигнатура метода проста:

string.find(substring, start, end)

Параметры

Использование find() со значениями по умолчанию

Когда start или end не указаны, find() сканирует всю строку с начала. Возвращает индекс первого совпадения или -1, если ничего не найдено.

Пример:

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

Указание начального индекса

Передача аргумента start ограничивает поиск, начиная с этой позиции до конца строки.

Пример:

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

Определение диапазона старта и конца

Предоставляя оба 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(), когда подстрока присутствует и когда отсутствует.

Пример:

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

Сравнение с rfind()

rfind() похож на find(), но возвращает наибольший индекс, где встречается подстрока. Если подстрока отсутствует, оба метода возвращают -1.

Пример:

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

Сравнение с index()

Метод index() ведёт себя как find(), но выбрасывает ValueError, когда подстрока отсутствует.

Пример:

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

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

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 
    print("The position of Tutorials using index() : ", mystring.index("test"))
ValueError: substring not found

Подсчёт вхождений подстроки

Чтобы посчитать, сколько раз подстрока появляется, итерируйтесь по строке и многократно вызывайте find() с обновлённым стартовым индексом.

Пример:

my_string = "test string test, test string testing, test string test string"
startIndex = 0
count = 0
for _ in range(len(my_string)):
    k = my_string.find('test', startIndex)
    if k != -1:
        startIndex = k + 1
        count += 1
print("The total count of substring test is:", count)

Вывод:

The total count of substring test is: 6

Ключевые выводы

Python

  1. Метод String.length() в Java: как получить длину строки (пример)
  2. Мастерство метода strip() в Python: подробное руководство и практические примеры
  3. Мастерство метода str.count() в Python: как подсчитывать символы и подстроки с примерами
  4. Мастерство строк форматирования format() в Python: понятные примеры
  5. Python len(): практическое руководство по измерению длины объектов
  6. Освоение лямбда-функций Python: практические примеры и лучшие практики
  7. Функция round() в Python: подробное объяснение с практическими примерами
  8. Освоение функции map() в Python: синтаксис, примеры и лучшие практики
  9. Python timeit(): измерение времени выполнения с практическими примерами
  10. Понимание type() и isinstance() в Python: практические примеры