【发布时间】:2019-02-21 06:05:36
【问题描述】:
这真的很快:
1 in range(100000000000000)
这真的很慢:
1.5 in range(100000000000000)
当step 必须是整数时,为什么必须生成整个范围才能知道1.5 不在range(X) 中?
【问题讨论】:
-
1 in range 将在第一个元素之后停止。当您检查不在您范围内的 int 时,速度如何?
-
这也很快。如果数字除以步长的模不是 0,我会认为很明显数字不在范围内。
-
我猜如果元素是整数会进行优化。范围内的“你好”(100000000000)也很慢
-
@CorentinLimier 我想就这么简单!
99999999.0 in range(100000000)需要很长时间,但99999999 in range(100000000)不需要。 -
我的猜测:范围内的浮点数很棘手,所以他们会彻底搜索?但是它应该在遇到大于针的范围内的值(它正在寻找的值)后尽早退出搜索?
标签: python python-3.x