Зачем нужен метод count у класса range
Результатом range всегда будет уникальные числа, поэтому range.count(x) будет возвращать либо 0 либо 1, такой-же результат можно получить так
int(x in range)
производительность одинаково, к примеру:
int(100000000000000 in range(100000000000001))
range(100000000000001).count(100000000000000)
это в обоих случаях мгновенно вернут 1, и поэтому возник вопрос, в чем различия этих вариантов и зачем нужен метод count
Ответы (1 шт):
Нельзя сказать, что метод count именно "нужен". Дело в том, что range реализует абстрактный базовый класс Sequence.
И именно в Sequence определен метод count. В общем случае в последовательности элементы могут повторяться, поэтому есть этот метод, для подсчета количества. В случае с range метод вырожден. Он возвращает 1 если элемент принадлежит range или 0 если не принадлежит.
Сам метод может и не особо нужен, но класс должен реализовывать все методы интерфейса, чтобы его можно было использовать во всех контекстах, где можно использовать произвольную последовательность.