问题描述
我在列表U中存储了一些日期,我想为1981年至2018年的每个单个日期生成一个日期序列,其中月和日是恒定的。我已经从dateutil库中使用了relativedelta()命令。
from dateutil.relativedelta import relativedelta
import datetime
U=[datetime.date(2013,6,5),datetime.date(2014,7,8),datetime.date(2012,12,5)]
U[0]+relativedelta(years=1)
但是relativedelta(years=1)
将仅获取datetime.date(2014,5)
,如何生成日期为datetime.date(1981,Month,Day)
,datetime.date(1982,Day)
的日期,依此类推,直到U中所有三个不同日期的datetime.date(2018,Day)
为止
解决方法
您可以通过使用列表理解来使其简单。如果要说的话,您想要1980年至2019年之间的所有“一月一日”:
Path
(例如,如果要在10月30日,将 choice = input()
if int(choice[0]) in X and choice[1] in Y:
print("True")
else:
print("False")
,[datetime.datetime(year,1,1) for year in range(1980,2020)]
更改为1
,1
。
感谢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)