Курс Python → Метод count в Python: почему count(», ») возвращает 4?

Метод count в Python возвращает количество вхождений подстроки в строку. Но почему 'abc'.count('') возвращает 4? Это происходит потому, что метод count считает и пустые подстроки. Таким образом, если подстрока пустая, то она считается в каждой позиции строки.

Давайте рассмотрим пример. У нас есть строка 'abc'. Если мы вызовем метод count(''), то он вернет 4, потому что пустая подстрока может быть найдена в следующих позициях: перед ‘a’, между ‘a’ и ‘b’, между ‘b’ и ‘c’ и после ‘c’.

Для более понятной реализации метода count, мы можем написать свою функцию, которая будет учитывать только непустые подстроки. Например:


def custom_count(s, substr):
    if not substr:
        return 0
    count = 0
    start = 0
    while True:
        start = s.find(substr, start) + 1
        if start == 0:
            break
        count += 1
    return count

Теперь, если мы вызовем custom_count('abc', ''), то получим 0, так как пустая подстрока не учитывается. Это делает метод более понятным и предсказуемым.

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

Автор урока

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

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

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

  1. Передача аргументов в Python
  2. Управление User-Agent в Python
  3. Переопределение метода __floordiv__
  4. Расчет времени выполнения программы
  5. Фильтрация последовательности
  6. Работа с комбинациями в Python.
  7. split() без разделителя
  8. Поиск шаблона в строке
  9. Именованные аргументы в Python
  10. Генерация случайных чисел в Python
  11. Проверка типов с использованием isinstance
  12. Разделение строк методом split()
  13. Сортировка списка по индексам
  14. Методы classmethod и staticmethod
  15. Копирование файлов с shutil()
  16. Обновление и получение данных в SQLite
  17. Хэш-функции и метод цепочек
  18. None в Python: использование и особенности
  19. Ограничение итераций в Python
  20. Проверка существования переменной с оператором :=
  21. Итерация по итерируемым объектам
  22. Удаление знаков препинания в Python
  23. Numpy: разбиение массивов
  24. Генераторы в Python
  25. Проверка подстроки в строке с помощью in
  26. Проверка версии Python
  27. Принципы SRP и OCP
  28. Тип CodeType в Python.
  29. Нахождение максимального значения и его индекса в списке
  30. Декораторы в Python
  31. Изменяемые и неизменяемые объекты
  32. Измерение времени выполнения кода
  33. Именованные срезы в Python
  34. Работа с getopt
  35. Контекстный менеджер в Python
  36. Профилирование с Pandas
  37. Обработка исключений
  38. Генерация строк с .join()
  39. Функция reversed() в Python
  40. Работа с контекст-менеджером «with»
  41. Многострочные комментарии в Python
  42. Перемешивание списка с shuffle()
  43. Удаление URL-адресов в Python
  44. Преобразование многоуровневого словаря
  45. Установка Git и AWS CLI
  46. Экранирование символов в Python
  47. Форматирование строк в Python
  48. Работа с коллекциями Python

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