我想生成一个列表列表,其中每个子列表包含两个日期之间的日期。我最终会将值附加到每个子列表。
我的代码:
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)]]
答案 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))]