我刚刚发现了py3k range
方法count()
:
counts = range(start, stop, step).count(item)
方法的结果是不是始终为1或0?在我看来,调用方法count
(而不是contains
)可能有点过分。
这种方法中是否存在某些与旧的不同的东西:
if item in range(start, stop, step) ?
答案 0 :(得分:5)
range.count()
确实总是返回0或1,它与int(item in range(...))
相同。其主要目的是使range()
个对象的界面符合collections.abc.Sequence
的界面,这需要count()
方法。
请注意,issubclass(range, collections.abc.Sequence)
会返回True
。