簡體   English   中英

從 function 創建年份列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM