擅长:python、mysql、java
<p>Daniel已经指出,每次通过循环都会创建一个新的生成器。与每次显式调用<code>next()</code>相比,循环一个生成器或让另一个生成器使用它更为常见。在</p>
<p>下面是如何在生成器的islice()上循环。在</p>
<pre><code>from itertools import islice
import datetime
#generator that continually adds 15 minutes to a datetime object
def gettime(caldate):
while True:
yield caldate
caldate += datetime.timedelta(minutes=15)
#initialize a datetime object
nextdate = datetime.datetime(2011, 8, 22, 11,0,0,0)
#call gettime function 25 times.
for the_date in islice(gettime(nextdate),0,25):
print the_date
</code></pre>
<p>如果需要,也可以将其简化为生成器表达式</p>
^{pr2}$