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

Python: create a list of datetime.date type efficiently, like "lubridate" in R

在 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)

以上仅适用于一天。 下面是一个伪代码,我希望它有效。

# 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)