生成列表的日期列表

时间:2015-01-20 15:03:32

标签: python python-2.7

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

我的代码:

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)]]

1 个答案:

答案 0 :(得分:4)

只需使用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))]