我想一次比较一个日期和不同的日期集。看起来我现在的代码将每个日期与三个列表进行比较,并生成三个结果。通过这种方法,每天产生三种不同的结果。相反,我希望将每个日期一次性压缩到三个日期范围,并生成结果。
我现在的代码是
exp1= [dates_bwn_twodates('2019-03-22','2019-04-09'),onemod,'exp1']
exp2 = [dates_bwn_twodates('4/10/2019','4/29/2019'),sixmod,'exp2']
exp3 = [dates_bwn_twodates('4/30/2019','5/9/2019'),fourmod,'exp3']
exp_list = [exp1,exp2,exp3]
days_list = [2019-03-06, 2019-03-09, 2019-03-10,2019-04-07,2019-04-15]
for j in days_list:
for k in explist:
if k[0].isin([j]).any() == True:
print(j, k[2])
elif k[0].isin([j]).any() == False:
print(j,"normal")
我目前的产出
.
.
2019-03-09 normal
2019-03-09 normal
2019-03-10 normal
2019-03-10 normal
2019-03-10 normal
2019-04-07 exp1
2019-04-07 normal
2019-04-07 normal
2019-04-15 normal
2019-04-15 exp2
2019-04-15 normal
..
我的预期产出
2019-03-09 normal
2019-03-10 normal
2019-04-07 exp1
2019-04-15 exp2 ..
您可以使用列表理解来识别exp_列表中的匹配项。使用next()函数,可以获得第一个匹配项,并在没有匹配项时使用其第二个参数指示默认值“normal”
下面是一个如何做到这一点的示例:
请注意,如果您使用的是字符串,则日期的格式必须全部为YYYY-MM-DD,这样比较才能正常工作。如果使用实际日期()值,则这不是问题
相关问题 更多 >
编程相关推荐