If I have a month integer like 6, how can I get the names of the previous 12 months? So passing in 6 would give me a list like
['June','May','April','March','February','January','December','November','October','September','August','July']
If I have a month integer like 6, how can I get the names of the previous 12 months? So passing in 6 would give me a list like
['June','May','April','March','February','January','December','November','October','September','August','July']
m =['January', 'February', 'March', 'April', 'May', 'June', 'July','August', 'September', 'October', 'November', 'December']
pos = 6 # current month is June
for i in range(pos,pos-12,-1):
print(m[i-1]) # in real m[pos] == July . so m[pos-1] == June
I know it has been answered but I think there a moret pythonic way using calendar module
import calendar
current = 11
last_12_months = [calendar.month_name[1:][i] for i in range(current - 12, current)] # starting from the last
reverse_last_12_months = reversed(last_12_months) # starting from the current
You can use itertools.cycle
, skipping the x previous and returning the 12 next from a reversed months list:
import itertools
def get_month_from_int(i):
reverse_months = itertools.cycle([
'December','November','October','September','August','July', 'June','May','April', 'March','February','January'
])
for _ in range(i):
next(reverse_months)
return [next(reverse_months) for _ in range(12)]
Here you have the live example