Курс 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. Декораторы в Python
  2. Чтение и запись TOML-конфигов
  3. Изменение объектов в Python
  4. Python Аргументы по умолчанию
  5. Иерархия классов в Python
  6. Оптимизация строк в Python
  7. Обратное распространение ошибки
  8. Нахождение максимального значения и его индекса в списке
  9. Вызов функций по строке в Python.
  10. Многострочные строки в Python
  11. Проверка окончания строки с помощью str.endswith()
  12. PUT запрос для обновления данных
  13. Поиск уникальных элементов строкой в Python
  14. Декораторы в Python
  15. Подсказки типов в Python
  16. Создание таблиц в Python с PrettyTable
  17. Проверка на истинность объектов в Python
  18. Генераторы в Python
  19. f-строки в формате строк
  20. Переопределение метода xor в Python
  21. Функции min(), max(), sum()
  22. Отладчик pdb: начало работы
  23. Тест скорости набора текста на Python
  24. Работа с NumPy массивами
  25. Подсчет количества элементов в списке
  26. Определение наиболее частого элемента с помощью collections.Counter
  27. Оператор in для проверки наличия элемента
  28. Метод pos в Python
  29. Асинхронное программирование с asyncio
  30. Получение размера объекта с sys.getsizeof()
  31. Работа с прокси в Python
  32. Работа с модулем glob в Python
  33. Отладка регулярных выражений в Python
  34. Функции-генераторы в Python
  35. Атрибуты класса и экземпляра
  36. Генераторы в Python
  37. Удаление специальных символов с помощью re.sub
  38. Работа с кортежами в Python
  39. Реализация операции -= для пользовательского класса
  40. Проверка на палиндром
  41. Методы split() и join() — Python строк.
  42. Функции map() и reduce() в Python
  43. Форматирование строк в Python
  44. Python Метод sleep() из time
  45. Форматирование строк с % в Python
  46. Преобразование данных в Python
  47. Отладка кода
  48. Генератор данных в Keras

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