Курс 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. Методы shutil для работы с файлами
  3. Объединение словарей в Python
  4. Блок try-except-else
  5. Комментарии в Python
  6. Команда %dhist — список посещенных каталогов
  7. Concrete Paths — метод .with_suffix()
  8. Модуль itertools: комбинации и перестановки
  9. Поиск HTML-элементов с BeautifulSoup
  10. Работа с timedelta в Python
  11. Основы работы с os
  12. Метод split() в Python
  13. Пустой оператор pass в Python
  14. Поиск индекса элемента в списке
  15. Цикл for в Python
  16. Работа с CSV файлами в Python
  17. Форматирование строк в Python
  18. Создание списков в Python
  19. Отправка POST-запроса в REST API
  20. Удаление элементов из списка
  21. Частичное совпадение пользовательского ввода в Python 3.10
  22. Оптимизация гиперпараметров с Scikit Optimize
  23. Блок else в Python
  24. Лямбда-функции в Python
  25. Обновление и получение данных в SQLite
  26. Расчет времени выполнения
  27. Регистрация на курсы SF Education
  28. Виртуальное окружение Python
  29. OrderedDict — упорядоченный словарь
  30. Создание словаря и множества
  31. Progress с библиотекой tqdm
  32. Проектирование Singleton с метаклассом
  33. Обход дочерних элементов BeautifulSoup
  34. Создание пустых функций и классов в Python
  35. Печать комбинаций в Python с Itertools
  36. Импорт модулей и пакетов в Python
  37. Путь к интерпретатору Python
  38. Многопоточность в Python
  39. Управление асинхронными задачами с помощью Semaphore
  40. Конкатенация строк с помощью join()
  41. Подсчет элементов с помощью Counter
  42. Метод count в Python: почему count(», ») возвращает 4?
  43. Управление контекстом с помощью декоратора contextmanager
  44. Lambda Functions in Python
  45. Проверка подстроки в строке с помощью in
  46. Обработка элементов в Python
  47. Конвертация текстовых чисел с помощью Numerizer
  48. Кортеж в Python: создание и использование
  49. Создание и использование ChainMap

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