Python:有效地创建一个datetime.date类型的列表,就像R中的"lubridate"一样



在R中,我可以创建一个包含日期的向量,如下所示:

# R
library(lubridate)
fivedays = today() - 1:5

它给出:

Output:
> fivedays
[1] "2020-07-26" "2020-07-25" "2020-07-24" "2020-07-23" "2020-07-22" 

在python中,实现类似结果的最有效方法是什么?

我尝试过这样做:

# python
import datetime
oneday = datetime.date.today() - datetime.timedelta(days = 1)

以上仅适用于一天。下面是一个pseude代码,我希望它能工作。

# python
import datetime
fivedays = datetime.date.today() - datetime.timedelta(days = [x for x in range(1,6)])
# Above fails with following error
# TypeError: unsupported type for timedelta days component: list

像下面这样的列表理解可能是最接近于"矢量";问题中的语法。

today = datetime.date.today()
fivedays = [today - datetime.timedelta(days=x) for x in range(5)]

您也可以使用numpy模块:

import numpy as np
fivedays = np.datetime64('today') - np.arange(1, 6) 

相关内容

最新更新