gpt4 book ai didi

Python:是否可以事先知道迭代器对象中有多少次迭代?

转载 作者:太空狗 更新时间:2023-10-30 01:43:02 24 4
gpt4 key购买 nike

到目前为止,如果我想知道一个迭代器中有多少次迭代(在我的例子中,这是一个文件中有多少个蛋白质序列),我做了:

count = 0
for stuff in iterator:
count += 1
print count

但是,我想将迭代器分成两半,所以我需要知道迭代的总数。有没有一种方法可以在不遍历迭代器的情况下知道迭代次数?

最佳答案

没有办法知道一个迭代器会产生多少值而不消耗它直到结束。请注意,迭代器也可以是无限的,因此在这种情况下甚至没有定义总计数。

如果您可以确保迭代器是有限的,一种方法是将其转换为列表(使用 list(iterator)),然后使用通常的列表函数(len, slicing) 将其一分为二。当然,以这种方式所有项目将同时在内存中,这在您的情况下可能会或可能不会被接受。

或者,您可以尝试使用自定义迭代器类来跟踪将要生成的项目总数。这是否可行取决于所述迭代器的具体获取方式。

关于Python:是否可以事先知道迭代器对象中有多少次迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8643315/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com