Курс 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. Оператор is в Python
  2. Оператор умножения для вектора
  3. Получение ID текущего процесса
  4. Получение срезов итераторов
  5. Извлечение аудио из видео
  6. Закрытие файла в Python
  7. Python union() функция — объединение множеств
  8. Проверка существования переменной с оператором :=
  9. Игра «Угадывание чисел»
  10. Возврат нескольких значений
  11. Функции all() и any() в Python
  12. Python и Юникод: работа с цифрами
  13. Обработка исключений в Python
  14. Функция с *args.
  15. ChainMap избыточные ключи
  16. Операции с датами в Python
  17. Работа с географическими данными.
  18. Списковое включение в Python
  19. Удаление символа из строки
  20. Освоение Python
  21. Работа со словарями
  22. Итерация по итерируемым объектам
  23. Прокачанный трейсинг ошибок
  24. Модуль functools в Python
  25. Копирование и вставка текста в Python
  26. Работа с deque из collections
  27. Получение размера объекта с sys.getsizeof()
  28. Метод join() для объединения элементов строки
  29. Работа с пакетами
  30. Python: динамическая типизация и проверка типов
  31. Функции map, filter, reduce
  32. Конвертация текстовых чисел с помощью Numerizer
  33. Оператор «моржа» (Walrus Operator)
  34. Изменение списка срезом
  35. Безопасные SQL-запросы в Python 3.11
  36. Метод setdefault() в Python
  37. Создание и инициализация объектов
  38. Работа с CSV в Python
  39. Модуль os в Python: работа с файлами
  40. Получение комбинаций в Python
  41. Изменения в обработке логических значений
  42. Отправка POST-запроса в REST API
  43. Concrete Paths в Python
  44. Инвертирование словаря
  45. Счетчик ссылок в Python
  46. Многострочные комментарии в Python

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