range(start, stop, step).count(item) 有什么特别的吗
我刚刚发现了 py3k range
方法 count()
:
counts = range(start, stop, step).count(item)
该方法的结果不总是 1 或 0 吗?在我看来,调用方法 count
(而不是 contains
)似乎有点过分了。
这种方法与旧方法有什么不同吗:
if item in range(start, stop, step) ?
I just discovered the py3k range
method count()
:
counts = range(start, stop, step).count(item)
Is not the result of the method always 1 or 0 ?. It seems to me a bit overkilling to call the method count
(instead of maybe contains
).
Is there something in this method that makes it different to the good old:
if item in range(start, stop, step) ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
range.count()
确实总是返回 0 或 1,并且它与int(item in range(...))
相同。它的主要目的是使range()
对象的接口符合collections.abc.Sequence
,它需要一个count()
方法。请注意,
issubclass(range, collections.abc.Sequence)
返回True
。range.count()
indeed always returns 0 or 1, and it's the same asint(item in range(...))
. Its main purpose is to make the interface ofrange()
objects comply with the interface of acollections.abc.Sequence
, which requires acount()
method.Note that
issubclass(range, collections.abc.Sequence)
returnsTrue
.