Есть ли что-то особенное в диапазоне (начало, остановка, шаг) .count (предмет) - PullRequest
0 голосов
/ 05 ноября 2011

Я только что открыл метод py3k range count():

counts = range(start, stop, step).count(item)

Не всегда ли результат метода равен 1 или 0?Мне кажется немного излишним вызывать метод count (вместо, возможно, contains).

Есть ли в этом методе что-то, что отличает его от старого доброго:

if item in range(start, stop, step)  ?

1 Ответ

5 голосов
/ 05 ноября 2011

range.count() действительно всегда возвращает 0 или 1, и это то же самое, что и int(item in range(...)). Его основная цель - привести интерфейс объектов range() в соответствие с интерфейсом collections.abc.Sequence, для которого требуется метод count().

Обратите внимание, что issubclass(range, collections.abc.Sequence) возвращает True.

...