Курс Python → Поиск индексов подстроки

Для того чтобы найти все индексы для подстроки в строке, мы можем создать пользовательскую функцию, которая будет итеративно проходить по строке и находить все вхождения подстроки. Например, мы можем создать функцию find_all_indexes(), которая будет принимать строку и подстроку в качестве аргументов и возвращать список всех индексов, по которым найдена подстрока.


def find_all_indexes(s, sub):
    indexes = []
    index = s.find(sub)
    while index != -1:
        indexes.append(index)
        index = s.find(sub, index + 1)
    return indexes

string = "hello world hello hello"
substring = "hello"
indexes = find_all_indexes(string, substring)
print(indexes)  # выводит [0, 12, 18]

В приведенном примере мы создали функцию find_all_indexes(), которая ищет все вхождения подстроки «hello» в строке «hello world hello hello». Мы итеративно вызываем метод find() для поиска подстроки, начиная с последнего найденного индекса + 1. Когда метод find() возвращает -1, это означает, что больше вхождений не найдено, и мы завершаем выполнение функции, возвращая список всех найденных индексов.

Таким образом, мы можем легко находить все индексы для подстроки в строке, используя пользовательскую функцию и метод find(). Это удобный способ для более точного анализа текста и работы с подстроками в Python.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Модуль os в Python: работа с файлами
  2. Объединение строк с помощью метода join
  3. Создание функций высшего порядка
  4. Создание новых списков в Python
  5. Безопасные SQL-запросы в Python 3.11
  6. Тестирование модели в PyTorch
  7. Множественное назначение в Python
  8. Установка и использование howdoi
  9. Списковое включение в Python
  10. Инвертирование словаря
  11. Функции высшего порядка в Python
  12. Регулярные выражения: метод match
  13. Округление банкира в Python
  14. Сравнение def и lambda-функций
  15. Добавление элементов в список: append() vs extend()
  16. Многострочные комментарии в Python
  17. Транспонирование 2D-массива с помощью zip
  18. Установка виртуального окружения Python
  19. Метод __imod__ для Python
  20. Метод __index__ в Python
  21. Python 3.12: переиспользование кавычек
  22. Использование super() в Python
  23. Транспонирование 2D-массива с помощью zip
  24. Структурирование именованных констант
  25. Построение графиков в Matplotlib
  26. Удаление элемента из списка в Python
  27. Декораторы для регистрации функций
  28. Генерация UUID в Python
  29. Модуль xkcd: добавление юмора в Python
  30. Установка и использование модуля «howdoi»
  31. Перехват исключений в Python
  32. Хешируемые ключи в Python
  33. Возвращение нескольких значений
  34. Эффективная конкатенация строк в Python
  35. Функции в одну строку
  36. Измерение времени выполнения кода в Python
  37. Объединение, распаковка и деструктуризация
  38. Область видимости переменных
  39. Работа с модулем os в Python
  40. Декораторы классов
  41. Экранирование символов в Python
  42. Поток данных в Python
  43. Выход из профиля в Django
  44. Python Enum Weekday Usage
  45. Декораторы в Python
  46. Замена атрибута в именованном кортеже
  47. Методы list в Python

Marketello читают маркетологи из крутых компаний