Курс 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. Установка максимального количества цифр
  2. Работа с itertools
  3. Работа с типами данных в Python с помощью pydantic.
  4. Установка и использование Logzero
  5. SciPy: широкий функционал для математических операций
  6. Распаковка элементов массива
  7. Создание OrderedDict
  8. Замыкания в Python
  9. Виртуальные среды в Python
  10. Объединение, распаковка и деструктуризация
  11. Отладчик pdb: начало работы
  12. Декораторы в Python
  13. Проверка условий: all и any
  14. Парсинг статей с Newspaper3k
  15. Работа с базами данных SQLite
  16. Нахождение отличий в списках
  17. Измерение времени выполнения кода с использованием time
  18. Namedtuple в Python
  19. Определение функций с необязательными аргументами
  20. Работа с контекстными менеджерами
  21. Переменная с нижним подчеркиванием
  22. Сравнение строк в Python
  23. Переопределение метода __floordiv__
  24. Генераторы списков в Python
  25. Оценка точности модели
  26. Реализация операции -= для пользовательского класса
  27. Скрытие вывода данных
  28. Асинхронное программирование с asyncio
  29. Работа с рекламными данными в Pandas
  30. Запрос DELETE с библиотекой requests
  31. Удаление элементов по срезу
  32. Python Ellipsis использование
  33. Упрощенный вывод данных в Python
  34. Инициализация переменных
  35. Генерация случайных чисел Python
  36. Оператор * в Python
  37. Мониторинг работы программы Py-spy
  38. Хэш-функции в Python
  39. Оператор распаковки в Python
  40. Работа с парами ключ-значение
  41. Работа с Event() в threading
  42. Конкатенация строк с join() в Python
  43. Участие в LP стейкинге Waves
  44. Работа с очередями в Python
  45. Разделение строки в Python
  46. Генераторы в Python
  47. Группы исключений в Python

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