如何在 python 中以 year-mon 格式获取最近三个月?

How to get last three months in year-mon format in python?

我想以年月格式获取从今天开始的最后三个月。例如,如果今天的日期是 2021-08-04 那么我想要最近三个月的列表作为 - ["2021-05", "2021-06", "2021-07"] 我不知道如何开始。任何帮助将不胜感激。

使用 dateutil 的 relativedelta 获得一致的结果,因为并非所有月份的天数都相同。例如

from datetime import datetime
from dateutil.relativedelta import relativedelta

NOW = datetime.now()             # reference date
delta = relativedelta(months=-1) # delta in time 
n = 3                            # how many steps

fmt = lambda dt: dt.strftime("%Y-%m") # formatter; datetime object to string

l = sorted((fmt(NOW+delta*i) for i in range(1, n+1)))
# l
# ['2021-05', '2021-06', '2021-07']