Курс 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. Метод __imod__ для Python
  3. Печать календаря
  4. Форматирование строк в Python
  5. Работа с collections в Python.
  6. Работа с JSON в Python
  7. Эффективная конкатенация строк с использованием join()
  8. Метод index() в Python
  9. Структуры данных в Python
  10. Атрибуты класса и экземпляра
  11. Управление памятью в numpy.
  12. Возвращение нескольких значений
  13. Атрибуты массивов в Numpy
  14. Удаление знаков препинания в Python
  15. Синхронизация потоков с time.sleep()
  16. Присвоение и ссылки
  17. Python: отсутствие точек с запятыми
  18. Динамическая типизация в Python
  19. Скачать видео с YouTube
  20. Сравнение def и lambda функций в Python
  21. Форматирование строк в Python.
  22. Путь к интерпретатору Python
  23. Оператор «is not» в Python
  24. Лямбда-функции в цикле
  25. Простой калькулятор Python
  26. Работа с прокси в Python
  27. Создание вкладок с TKinter
  28. Отступы в Python
  29. discard() — удаление элемента из множества
  30. Создание OrderedDict
  31. Логирование с Logzero
  32. Математические функции в Python
  33. Группы исключений в Python
  34. Списки в Python
  35. Основы работы со строками в Python
  36. Использование type hints
  37. Оформление кода на Python
  38. Методы в Python
  39. Библиотека Chartify: руководство
  40. Расчет времени выполнения
  41. Вложенные генераторы в Python
  42. Управление экспортом элементов
  43. UserString в Python
  44. Красивый вывод списка
  45. Капитализация строк
  46. Создание новых списков в Python

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