首页 > 解决方案 > 在python中创建2个日期之间的年份列表

问题描述

我有 2 个日期,并希望创建一个在这两个日期之间包含年份的列表。不知何故努力在python中做到这一点。

date1(2010, 1, 1)
date2(2015, 1, 1)

输出应该是这样的

years = [2010, 2011, 2012, 2013, 2014, 2015]

我尝试了以下但无法创建列表

def daterange(date1, date2):
    for n in range(int(date2.year) - int(date1.year)+1):
        yield int(date1.year) + n

start_dt = date(2010, 12, 20)
end_dt = date(2016, 1, 11)
for dt in daterange(start_dt, end_dt):
    print(dt)

这会打印年份但不确定如何将它们放入列表中?还有一种更简单的方法来创建列表吗?

标签: python

解决方案


daterange是发电机。所以只需将它传递给list函数。

years = list(daterange(start_dt, end_dt))

请注意,您的代码可以进一步优化


推荐阅读