生成列表的日期列表

Generate Date List of Lists

我想生成一个列表列表,其中每个子列表包含一个介于两个日期之间的日期。我最终将向每个子列表附加值。

我的代码:

from datetime import date, datetime, timedelta

def date_increments(start, end, delta):
    curr = start
    while curr < end:
        yield curr
        curr += delta

my_dates = []
row=0
for result in date_increments(date(2014, 10, 10), date(2014, 10, 12), timedelta(days=1)):
    my_dates[row][0] = result
    row += 1

print my_dates

错误:

my_dates[row][0] = result
IndexError: list assignment index out of range

期望的输出:

[[date(2014, 10, 10)],[date(2014, 10, 11)],[date(2014, 10, 12)]]

只需使用append:

my_dates.append([result])

你甚至不需要使用 row

另外,使用:

while curr <= end:

为了在最终名单中有 end

对于更短的解决方案,请使用:

my_dates = [[res] for res in date_increments(date(2014, 10, 10), date(2014, 10, 12), timedelta(days=1))]