發電機
這裏是你如何創建一個可生成一個包含範圍的函數:
def inc_range(stop, start=0, step=1):
numerator = start
while numerator<=stop:
yield numerator
numerator += step
a = [val for val in inc_range(10)]
print(a)
顯示:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
現在,這個方法可以適用於任何你想要的;日期或其他。
日期範圍生成
這適合您需要的方法:
from datetime import date, timedelta
def date_range(stop, start, step=1):
delta_date = stop - start
numerator = 0
while numerator <= delta_date.days:
yield str(start + timedelta(numerator))
numerator += step
date_start = date(2014, 3, 15)
date_end = date(2014, 3, 21)
a = [val for val in date_range(date_end, date_start)]
print(a)
顯示:
['2014-03-15', '2014-03-16', '2014-03-17', '2014-03-18', '2014-03-19', '2014-03-20', '2014-03-21']
注意的是,在發電機產生的時候,如果你不包括str()
,該響應將代替datetime.date()
的對象。
希望這回答你的問題。
我不知道我明白你想要什麼。你可以添加一個你正在尋找的值的例子嗎?第二次約會,爲什麼'00:00'是排他性的? –
如果你正在使用日期,爲什麼不使用'datetime.date()'對象? –
更確切地說,'day'應該具有什麼樣的價值,以及你期待從'get_epoch'得到的返回值。 –