python - 如何迭代生成器?

标签 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:

作为迭代到结束的循环,x 的长度并不重要。

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

最佳答案

您可以将 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

关于python - 如何迭代生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31780191/

相关文章:

python - 将 Pandas 中各个字段的小数位数指定为csv

c++ - 我无法理解 std::istream_iterator 的使用

python - OCaml 相当于 Python 生成器

python生成器对象混淆

Keras flow_from_directory 限制示例数量

python - Pytorch 运行时错误 : element 0 of tensors does not require grad and does not have a grad_fn

python - python 的 selenium 的导入错误

python - 无法让 pytorch 与张量板一起工作

vector - 可以从迭代器中收集 &mut 吗?

c++ - 在 `for` 循环内递增后,迭代器结束检查失败