我目前的做法是:
rowiter = atable.where(condition)
rowiter_length = max([i for i, row in enumerate(rowiter)])
有没有办法在没有遍历整个迭代器的情况下获得rowiter的长度?
答案 0 :(得分:1)
不确定是否有更有效的方法,但你应该真正使用len(rowiter)
而不是那个列表comp,原因有两个:
__len__
特殊方法使其可访问,因此如果可用,您将获得加速。enumerate
从索引0开始,因此您的构造将返回比迭代器的实际长度少1的内容。