python中日期的迭代器

python中日期的迭代器,python,date,iterator,Python,Date,Iterator,我有一个开始日期datetime.date(2012,9,1)和一个结束日期datetime.date(2012,9,30) 我想得到一个迭代器或列表,其中包括日期2012/9/1至2012/9/30。除了循环之外,是否有其他方法使迭代器或列表使用生成器: from datetime import date, timedelta def dategenerator(start, end): current = start while current <= end:

我有一个开始日期
datetime.date(2012,9,1)
和一个结束日期
datetime.date(2012,9,30)

我想得到一个迭代器或列表,其中包括日期2012/9/1至2012/9/30。除了循环之外,是否有其他方法使迭代器或列表使用生成器:

from datetime import date, timedelta

def dategenerator(start, end):
    current = start
    while current <= end:
        yield current
        current += timedelta(days=1)

如果没有隐式循环,您可以执行以下操作:

from datetime import date
from dateutil.rrule import rrule, DAILY

iterdates=iter(rrule(DAILY, dtstart=date(2012, 9, 1), until=date(2012, 9, 30)))

每个Martijn Pieters
python
answer中法律要求的强制性+1回答:-PNo,您需要一个循环-但是您可以将循环埋在函数/生成器中,这样您就不必再看到它了。
from datetime import date
from dateutil.rrule import rrule, DAILY

iterdates=iter(rrule(DAILY, dtstart=date(2012, 9, 1), until=date(2012, 9, 30)))