Курс 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. Работа с argparse
  3. Метод setitem в Python
  4. discard() — удаление элемента из множества
  5. Парсинг статей с Newspaper3k
  6. Обработка исключений в Python
  7. Python 3.12: Псевдонимы типов
  8. Создание файла с проверкой ошибки
  9. Эффективная конкатенация строк в Python
  10. Преобразование данных в Python
  11. Форматирование данных с помощью pprint
  12. Хэш-функции в Python
  13. Цикл for в Python
  14. PUT запрос для обновления данных
  15. Метод ifloordiv для пользовательских классов
  16. Ускорение обработки данных с %autoawait
  17. Функция __init__ в Python
  18. Копирование объектов в Python
  19. Управление импортом в Python
  20. Именование переменных в Python
  21. Измерение потребления памяти при сортировке
  22. Объединение итераторов
  23. Функции map, filter, reduce
  24. Отслеживание выполнения программы с библиотекой tqdm
  25. Вывод баннеров
  26. Использование type hints
  27. Нан-рефлексивность в Python
  28. Разделение строки с помощью split()
  29. Работа с collections в Python
  30. Многоточие в Python
  31. Нахождение пересечения множеств
  32. Изменение регистра данных
  33. Установка и использование библиотеки google
  34. Аннотации типов в Python
  35. Частичное применение функций в Python
  36. Замена переменных в Python
  37. Метод remove() для удаления элемента из списка
  38. Работа с deque в Python
  39. Создание списков в Python
  40. Получение текущей даты и времени с помощью datetime
  41. Отделение звука от видео
  42. Генерация случайных чисел в Python
  43. Генераторы в Python
  44. Философия Python
  45. Генераторы в Python

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