结果range
将始终是唯一的数字,因此它将range.count(x)
返回0
or 1
,可以像这样获得相同的结果
int(x in range)
性能是一样的,例如:
int(100000000000000 in range(100000000000001))
range(100000000000001).count(100000000000000)
这在两种情况下都会立即返回1
,因此出现了问题,这些选项之间有什么区别以及为什么需要该方法count
结果range
将始终是唯一的数字,因此它将range.count(x)
返回0
or 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
不属于,则返回。方法本身可能不是特别必要,但类必须实现接口的所有方法,以便可以在可以使用任意序列的所有上下文中使用。