Курс 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. Измерение времени выполнения кода
  3. Переменная Шредингера
  4. Проверка подстроки в строке
  5. Назначение максимального и минимального значения переменной в Python.
  6. Функция reduce() из модуля functools
  7. Списки в Python: основы
  8. Обновление шаблона base.html
  9. Импорт в Python: список all
  10. Методы Python для работы с данными
  11. PATCH-запрос с библиотекой requests
  12. Создание виртуальной среды
  13. Работа с JSON в Python
  14. Частичное совпадение ввода
  15. Обновление множества в Python
  16. Основы работы со списками
  17. Операции с комплексными числами
  18. Создание таблиц в терминале с PrettyTable
  19. Форматирование вывода с F-строками
  20. Ввод нескольких значений
  21. Проверка однородности элементов списка
  22. Списки: объединение, изменение
  23. Работа с модулем glob в Python
  24. Форматирование данных с помощью pprint
  25. discard() — удаление элемента из множества
  26. Получение срезов итераторов
  27. Функции any() и all() в Python
  28. Оператор continue в Python
  29. Принципы программирования
  30. Перебор элементов списка в Python
  31. Поиск индексов в списке
  32. Метод setitem в Python
  33. Применение функции к списку
  34. Метод __int__ в Python
  35. Использование функции enumerate()
  36. Работа с массивами в Python
  37. Удаление символа из строки
  38. Переопределение метода __lshift__
  39. Подписка на @SelectelNews
  40. Метод join() для объединения элементов строки
  41. Фильтрация последовательности
  42. Вычисление натуральных логарифмов в NumPy
  43. Обработка данных в Python
  44. Defaultdict в Python
  45. Декоратор Property в Python

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