Python 获取PyTables行迭代器中元素数的最佳方法是什么?

Python 获取PyTables行迭代器中元素数的最佳方法是什么?,python,iterator,pytables,Python,Iterator,Pytables,我目前的做法是: rowiter = atable.where(condition) rowiter_length = max([i for i, row in enumerate(rowiter)]) 有没有一种方法可以在不遍历整个迭代器的情况下获取rowiter的长度?不确定是否有更有效的方法,但您应该使用len(rowiter)而不是列表comp,原因有二: 如果迭代器对象确实有一种更有效的计算其长度的方法,那么它很可能通过\uuuu len\uuuu特殊方法使其可访问,因此如果可用,您

我目前的做法是:

rowiter = atable.where(condition)
rowiter_length = max([i for i, row in enumerate(rowiter)])

有没有一种方法可以在不遍历整个迭代器的情况下获取rowiter的长度?

不确定是否有更有效的方法,但您应该使用
len(rowiter)
而不是列表comp,原因有二:

  • 如果迭代器对象确实有一种更有效的计算其长度的方法,那么它很可能通过
    \uuuu len\uuuu
    特殊方法使其可访问,因此如果可用,您将获得加速
  • enumerate
    从索引0开始,因此构造返回的值将比迭代器的实际长度少1