结果range将始终是唯一的数字,因此它将range.count(x)返回0or 1,可以像这样获得相同的结果
int(x in range)
性能是一样的,例如:
int(100000000000000 in range(100000000000001))
range(100000000000001).count(100000000000000)
这在两种情况下都会立即返回1,因此出现了问题,这些选项之间有什么区别以及为什么需要该方法count
结果range将始终是唯一的数字,因此它将range.count(x)返回0or 1,可以像这样获得相同的结果
int(x in range)
性能是一样的,例如:
int(100000000000000 in range(100000000000001))
range(100000000000001).count(100000000000000)
这在两种情况下都会立即返回1,因此出现了问题,这些选项之间有什么区别以及为什么需要该方法count
不能说该方法
count是“需要的”。关键是它range实现了抽象基类 Sequence。这就是定义
Sequence方法的地方count。在一般情况下,元素可以在一个序列中重复,因此有这种方法来计数。在用range方法的情况下是退化的。1如果元素属于range或0不属于,则返回。方法本身可能不是特别必要,但类必须实现接口的所有方法,以便可以在可以使用任意序列的所有上下文中使用。