如何迭代生成器?

时间:2015-08-03 05:47:27

标签: python iterator generator

假设一个大清单,我想迭代它。

>>> x=[]
>>> for i in x:
print(x)

但由于列表太大,使用生成器是最好的方法:

>>> g=(i for i in range(10))
>>> g.__next__()
0

但迭代次数存在问题。 因为我不知道应该使用g.__next__()多少次,所以我需要一些更有活力的东西。

例如:

for i in x:

将迭代结束的循环作为循环的多长时间并不重要。

我如何使用生成器进行类似的迭代?

2 个答案:

答案 0 :(得分:3)

您可以在生成器中使用for语法:

>>> g=(i for i in range(10))
>>> g
<generator object <genexpr> at 0x7fd70d42b0f0>
>>> for i in g:
...     print i
... 
0
1
2
3
4
5
6
7
8
9

答案 1 :(得分:2)

使用for循环,就像在列表中使用的那样,示例 -

use Defuse\Crypto\Crypto;
use Defuse\Crypto\Exception as Ex;