我想在python中获取最近六个月的数字作为列表。 让我们说我们三月份,我想获得:
>>> last_six_months
[2, 1, 12, 11, 10]
答案 0 :(得分:1)
您最好的选择是在月份使用模数计算:
[(datetime.today().month - i - 1) % 12 + 1 for i in range(6)]
这包括当月;如果您只需要前5个月,请使用range(1, 6)
。
演示:
>>> [(datetime.today().month - i - 1) % 12 + 1 for i in range(6)]
[3, 2, 1, 12, 11, 10]
(month - 1) % 12 + 1
模式可确保您始终获得1到12之间的值。
答案 1 :(得分:-1)
我想出了一种列表理解方式:
from datetime import datetime, timedelta
last_six_months = [(datetime.today() - timedelta(days=i)).month for i in range(30, 180, 30)]