[英]Create a list of years from a function
我知道如何使用dt.timedelta()
循環數天。 但是,多年來似乎沒有適用的 timedelta 用途來做到這一點。 例如:
def list_dates(start, end):
num_days = (end - start).days
return [start + dt.timedelta(days=x) for x in range(num_days)]
start_date = dt.date(2017, 4, 10)
end_date = dt.date(2017, 5, 1)
date_list = list_dates(start_date, end_date)
這會輸出從 2017 年 4 月 10 日到 2017 年 5 月 1 日的日期列表。
現在,我想做與上述 function 相同的事情,但多年來。 例如,假設我提供了開始和結束年份(2010 年和 2019 年)。 function 然后會吐出從 2010 年到 2019 年的年份列表。
使用pd.date_range
並指定您想要的周期數:
from datetime import datetime
import pandas as pd
start = datetime(2017, 4, 10).strftime("%m/%d/%Y")
end = datetime(2019, 5, 1).strftime("%m/%d/%Y")
list(pd.date_range(start=start, end=end, periods = 3).year)
#Output
[2017, 2018, 2019]
這是我認為符合您要求的類型檢查實現:
import datetime
def list_years_from_dates(start: datetime.date, end: datetime.date) -> range:
return range(start.year, 1 + end.year)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.