擅长:python、mysql、java
<p>你可以自己看看有什么不同。
第一个循环遍历<code>range</code>,然后打印整数</p>
<pre><code>>>> for i in range(4):
... print(i)
...
0
1
2
3
</code></pre>
<p>第二个是生成器表达式</p>
<pre><code>>>> print(i for i in range(4))
<generator object <genexpr> at 0x10b6c20f0>
</code></pre>
<p>迭代如何在生成器中工作。Python生成器是创建迭代器的一种简单方法</p>
<p>简单地说,生成器是一个返回对象(迭代器)的函数,我们可以对其进行迭代(一次迭代一个值)</p>
<pre><code>>>> g=(i for i in range(4))
>>> print(g)
<generator object <genexpr> at 0x100f015d0>
>>> print(next(g))
0
>>>
>>> print(next(g))
1
>>> print(next(g))
2
>>> print(next(g))
3
>>> print(next(g))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
>>> g=(i for i in range(4))
>>> for i in g:
... print(i)
...
0
1
2
3
>>> for i in g:
... print(i)
...
>>>
>>>
</code></pre>
<p>在python3中,可以使用元组解包来打印生成器。如果这就是你想要的</p>
<pre><code>>>> print(*(i for i in range(4)))
0 1 2 3
</code></pre>