Курс 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. Сравнение def и lambda в Python
  2. Преобразование объекта в строку
  3. split() без разделителя
  4. Работа со строками в Python
  5. Работа с изображениями Pillow
  6. Основы работы со строками в Python
  7. Обработка исключений в Python 3
  8. TypedDict для kwargs в Python 3.12
  9. Имена объектов в Python
  10. Создание таблиц в терминале с PrettyTable
  11. Получение комбинаций в Python
  12. Функция reduce() в Python
  13. Атрибуты объекта в Python
  14. Срез списка в Python
  15. Замена символов в строке
  16. Динамическая типизация в Python
  17. Изменения в обработке логических значений
  18. Antigravity модуль
  19. Оператор in для Python
  20. Фильтрация входных данных в Python
  21. Цикл for в Python
  22. Декораторы в Python
  23. Лямбда-функции в Python
  24. Декораторы в Python
  25. Повторение и перенос строки
  26. Метод append() для списка
  27. Атрибуты класса и экземпляра в Python
  28. Работа с модулем cmath
  29. Метод __int__ в Python
  30. Нахождение отличий в списках
  31. Подчеркивание в REPL
  32. Конкатенация строк в Python
  33. Импорт и использование модулей в Python
  34. Модуль xkcd: загрузка комиксов
  35. Работа с аргументами командной строки в Python
  36. Оператор «not» в Python
  37. Бесконечные списки в Python
  38. Цикл while в Python
  39. discard() — удаление элемента из множества
  40. Функция divmod() в Python
  41. Получение имени функции с помощью inspect
  42. Проверка надежности пароля на Python
  43. Оператор assert в Python
  44. Извлечение новостей с newspaper3k
  45. Метод join() для объединения элементов строки

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