范围内有什么特别的东西(开始,停止,步骤).count(item)

joa*_*uin 0 count python-3.x

我刚刚发现了py3k range方法count():

counts = range(start, stop, step).count(item)
Run Code Online (Sandbox Code Playgroud)

方法的结果不是始终为1或0?在我看来,调用这个方法count(而不是可能contains)有点过分.

这种方法中是否有某些东西使它与旧的不同:

if item in range(start, stop, step)  ?
Run Code Online (Sandbox Code Playgroud)

Sve*_*ach 5

range.count()确实总是返回0或1,它与...相同int(item in range(...)).其主要目的是使range()对象的接口符合a的接口collections.abc.Sequence,这需要一种count()方法.

请注意issubclass(range, collections.abc.Sequence)返回True.