除非我弄错了,否则范围只能包含唯一的数字。所以,一个数字可能在或不在。
我想只有当我们想要将一个范围作为许多可接受类型之一(动态)传递给某个函数时才有意义。
然而,似乎如果它会超过整个范围来计算一个数字,那将是非常低效的。
我尝试将它与“in
”进行比较,但在我的机器上似乎它们具有相同的时间。这可能是对的吗?
答案 0 :(得分:5)
因为range()
个对象符合Sequence
ABC,并且ABC有.count()
方法。
换句话说,它是为了完整性,所以对象qualifies as a sequence。
它不必遍及整个范围,因为如果数字是序列的一部分,计算很容易,请参阅Why is `1000000000000000 in range(1000000000000001)` so fast?