Курс 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. Модуль inspect: получение информации о объектах
  2. Метод __ilshift__ для битового сдвига влево
  3. Python: Фильтрация списков с помощью filter()
  4. Установка Home Assistant
  5. Раздувающийся словарь в Python
  6. Многострочные комментарии в Python
  7. Генерация случайных чисел в Python
  8. Работа с IP-адресами в Python
  9. Подсчет количества элементов в списке
  10. Модуль xkcd: добавление юмора в Python
  11. Работа со списками
  12. Вложенные генераторы в Python
  13. Подсчет элементов в списке с Counter
  14. Декораторы в Python
  15. Форматирование заголовков в Python
  16. Асинхронный код в Python
  17. Скрытие вывода данных
  18. Python и Юникод: работа с цифрами
  19. Генераторы словарей и множеств
  20. Безопасные SQL-запросы в Python 3.11
  21. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  22. Аннотации типов в Python
  23. Работа с массивами в Numpy
  24. Определение объема памяти объекта
  25. Асинхронное программирование с asyncio
  26. Поиск индекса элемента в списке
  27. Установка Python — Простое руководство
  28. Измерение времени выполнения кода
  29. Выключение компьютера с помощью Python
  30. Передача неизвестных аргументов в Python.
  31. Оператор walrus в Python
  32. Импорт модулей и пакетов в Python
  33. Операторы увеличения и уменьшения в Python
  34. Циклы в Python
  35. Отладка в командной строке
  36. Генераторы в Python
  37. Обучение модели с указанием эпох
  38. Получение срезов итераторов
  39. Создание класса в Python
  40. Проверка дубликатов в Python
  41. Удаление файлов с shutil.os.remove()
  42. Замена атрибута в именованном кортеже
  43. Списковые включения в Python
  44. Декоратор @override
  45. Преобразование Word в PDF с Spire.Doc
  46. Регистрация на курсы SF Education

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