Курс 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"
- Python: отличительная особенность — отступы
- Форматирование строк с помощью f-строк
- Python Поверхностное Копирование
- Применение функции к элементам списка
- Преобразование многоуровневого словаря
- Операции со строками в Python
- Обработка исключений в Python
- Избегайте использования goto
- Транспонирование 2D-массива с помощью zip
- Модуль itertools: комбинации и перестановки
- Перемешивание списка с shuffle()
- Объединение списков с использованием itertools.chain
- Добавление кнопки в tkinter
- Карта бомбоубежищ в Москве и Питере
- Solidity для DeFi Ethereum
- Определение наиболее частого элемента с помощью collections.Counter
- OrderedDict — упорядоченный словарь
- Управление ресурсами в Python
- Функция reversed() в Python
- Создание коллекций из генератора
- Команда %dhist — список посещенных каталогов
- Импорт модулей в Python 3.12
- Работа с комплексными числами в Python
- Работа с множествами в Python
- Метод __getitem__ в Python
- Разделение строк в Python
- Метод ifloordiv для пользовательских классов
- Склеивание строк без циклов
- globals и locals
- Отправка HTTP-запросов с User-Agent
- Управление сессиями в Python
- Работа с библиотекой xkcd
- Оператор continue в Python
- Создание файла с проверкой ошибки
- Форматирование строк в Python
- Поиск всех индексов подстроки
- enumerate() в Python для работы с индексами
- Любовь к Python
- Изменение переменной в Python: nonlocal
- Дефолтные параметры в Python
- Модуль array: создание и использование массивов
- Отступы в Python
- Метод join() для объединения элементов
- Синтаксис переменных цикла в Python















