range(start, stop, step).count(item) 有什么特别的吗

发布于 2024-12-14 09:01:21 字数 314 浏览 0 评论 0原文

我刚刚发现了 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

揽清风入怀 2024-12-21 09:01:21

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 as int(item in range(...)). Its main purpose is to make the interface of range() objects comply with the interface of a collections.abc.Sequence, which requires a count() method.

Note that issubclass(range, collections.abc.Sequence) returns True.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文