Зачем нужен метод count у класса range

Результатом range всегда будет уникальные числа, поэтому range.count(x) будет возвращать либо 0 либо 1, такой-же результат можно получить так

int(x in range) 

производительность одинаково, к примеру:

int(100000000000000 in range(100000000000001)) 
range(100000000000001).count(100000000000000)

это в обоих случаях мгновенно вернут 1, и поэтому возник вопрос, в чем различия этих вариантов и зачем нужен метод count


Ответы (1 шт):

Автор решения: Roman Konoval

Нельзя сказать, что метод count именно "нужен". Дело в том, что range реализует абстрактный базовый класс Sequence.

И именно в Sequence определен метод count. В общем случае в последовательности элементы могут повторяться, поэтому есть этот метод, для подсчета количества. В случае с range метод вырожден. Он возвращает 1 если элемент принадлежит range или 0 если не принадлежит.

Сам метод может и не особо нужен, но класс должен реализовывать все методы интерфейса, чтобы его можно было использовать во всех контекстах, где можно использовать произвольную последовательность.

→ Ссылка