Курс 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. Переменная с нижним подчеркиванием
  3. Переворот строки
  4. Получение текущего времени в Python
  5. Переворот списка в Python
  6. Отделение звука от видео
  7. Работа с путями в Python
  8. List Comprehension Tutorial
  9. Форматирование строк в Python
  10. Асинхронное программирование с asyncio
  11. Логирование в Python
  12. Работа с модулем cmath
  13. Печать списка с помощью метода join
  14. Принципы SRP и OCP
  15. Асинхронное выполнение задач в процессах
  16. Декораторы в Python
  17. Многострочные строки в Python
  18. Участие в сообществе @selectel
  19. Возврат нескольких значений из функции
  20. Создание namedtuple списком полей
  21. Блок try…finally в Python
  22. Оптимизация сравнения в Python
  23. Замена подстроки
  24. Замена элементов в списке с помощью генераторов списков
  25. Цикл for в Python
  26. Передача аргументов через **arguments
  27. Сортировка данных с лямбда-функциями
  28. Тестирование времени с Freezegun
  29. Функция pow() — возвести число в степень
  30. Подсчет элементов в списке с Counter
  31. Аннотации типов в Python
  32. Безопасный доступ к значениям словаря
  33. Работа с функцией next() в Python
  34. Декораторы в Python
  35. Работа со словарями Python
  36. Retrying в Python: повторные вызовы
  37. Удаление дубликатов из списка с помощью dict.fromkeys
  38. Преобразование чисел в Python
  39. Математические функции в Python
  40. Mad Libs Generator
  41. Множественное назначение в Python
  42. Модуль pprint
  43. Настройка вывода NumPy
  44. Преобразование чисел в слова
  45. Упрощенный вывод данных в Python
  46. Поиск простых чисел
  47. Разбиение строки в Python

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