【发布时间】:2020-01-23 16:07:20
【问题描述】:
我想生成两个日期之间的日期列表,并将它们以字符串格式存储在列表中。此列表可用于与我拥有的其他日期进行比较。
我的代码如下:
from datetime import date, timedelta
sdate = date(2019,3,22) # start date
edate = date(2019,4,9) # end date
def dates_bwn_twodates(start_date, end_date):
for n in range(int ((end_date - start_date).days)):
yield start_date + timedelta(n)
print(dates_bwn_twodates(sdate,edate))
我现在的输出:
<generator object dates_bwn_twodates at 0x000002A8E7929410>
我的预期输出:
['2019-03-22',.....,'2019-04-08']
我的代码有问题。
【问题讨论】:
-
使用
yield意味着您的函数将返回一个生成器。如果你想运行生成器来获取所有元素,你可以print(list(dates_bwn_twodates(sdate, edate)))。 -
@anky_91 我需要建议。如果我想检查日期是否在上面的列表中?如何与列表进行比较?
-
@Mainland 您的目标是检查某个日期是否介于其他两个日期之间?如果是这样,则该列表是不必要的,并且有更简单的方法来完成该检查
-
@ALollz 是的!目标是拥有一个日期列表(存储在列表中)并比较日期是否已经在列表中。我以为这是唯一的方法。我感谢任何替代解决方案。