在python中生成间隔为一年且月和日为常量的日期

在python中生成间隔为一年且月和日为常量的日期,python,Python,我有一些日期存储在一个列表U中,我想为每个日期生成一个序列,从1981年到2018年,以月和日为常数。我使用了dateutil库中的relativedelta()命令 从dateutil.relativedelta导入relativedelta 导入日期时间 U=[日期时间日期(2013,6,5),日期时间日期(2014,7,8),日期时间日期(2012,12,5)] U[0]+相对寿命(年=1) 但是relativedelta(years=1)将只获取datetime.date(2014,6

我有一些日期存储在一个列表U中,我想为每个日期生成一个序列,从1981年到2018年,以月和日为常数。我使用了dateutil库中的relativedelta()命令

从dateutil.relativedelta导入relativedelta
导入日期时间
U=[日期时间日期(2013,6,5),日期时间日期(2014,7,8),日期时间日期(2012,12,5)]
U[0]+相对寿命(年=1)

但是
relativedelta(years=1)
将只获取
datetime.date(2014,6,5)
,如何将日期生成为
datetime.date(1981,Month,Day)
datetime.date(1982,Month,Day)
等等,直到
datetime.date(2018,Month,Day)
对于U中所有三个不同的日期

您可以使用列表来保持简单。比如说,你想要1980年至2019年的所有1月1日:

[datetime.datetime(year, 1, 1) for year in range(1980,2020)]

(例如,如果您想在10月30日前购买,请将
1
1
更改为
10
30

您可以使用列表理解来保持简单。如果您想在1980年至2019年之间购买所有的1月1日:

[datetime.datetime(year, 1, 1) for year in range(1980,2020)]

(如果需要10月30日,请将
1
1
更改为
10
30
,例如。

谢谢Zabop提供的解决方案。我想为所有三个日期生成序列,代码如下:

import numpy as np
import datetime

U=[datetime.date(2013,6,5),datetime.date(2014,7,8),datetime.date(2012,12,5)]
x=list()
for i in np.arange(0,3,1):
           X1=[datetime.datetime(year, U[i].month, U[i].day) for year in range(1980,2020)]
           x.append(X1) 

感谢Zabop提供的解决方案。我想为所有三个日期生成序列,以下是代码:

import numpy as np
import datetime

U=[datetime.date(2013,6,5),datetime.date(2014,7,8),datetime.date(2012,12,5)]
x=list()
for i in np.arange(0,3,1):
           X1=[datetime.datetime(year, U[i].month, U[i].day) for year in range(1980,2020)]
           x.append(X1)