最近六个月在python中的数字

时间:2014-03-15 16:42:01

标签: python datetime

我想在python中获取最近六个月的数字作为列表。 让我们说我们三月份,我想获得:

>>> last_six_months
[2, 1, 12, 11, 10]

2 个答案:

答案 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)]