On Oct 18, 8:56 am, Shane Geiger <[EMAIL PROTECTED]> wrote: > A simpler way, imho: > > import datetime > m = { > 1:'Jan',2:'Feb',3:'Mar',4:'Apr',5:'May',6:'Jun',7:'Jul',8:'Aug',9:'Sep',10:'Oct',11:'Nov',12:'Dec'} > > month = datetime.date.today().month > if month == 1: > ans = [m[11], m[12], m[1]] > elif month == 2: > ans = [m[11], m[12], m[1]] > else: > ans = [m[month-2], m[month-1], m[month]] > print ans >
1. Why use a dict? 2. The if-elif-else caper doesn't scale well; suppose the OP want to "pull" the previous 6 months. The % operator is your friend. Try this: >>> m = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', >>> 'Nov', 'Dec'] >>> for mo in range(1, 13): ... print mo, [m[(mo - x - 2) % 12] for x in range(3)] ... 1 ['Dec', 'Nov', 'Oct'] 2 ['Jan', 'Dec', 'Nov'] 3 ['Feb', 'Jan', 'Dec'] 4 ['Mar', 'Feb', 'Jan'] 5 ['Apr', 'Mar', 'Feb'] 6 ['May', 'Apr', 'Mar'] 7 ['Jun', 'May', 'Apr'] 8 ['Jul', 'Jun', 'May'] 9 ['Aug', 'Jul', 'Jun'] 10 ['Sep', 'Aug', 'Jul'] 11 ['Oct', 'Sep', 'Aug'] 12 ['Nov', 'Oct', 'Sep'] >>> for mo in range(1, 13): ... print mo, [m[(mo - x - 2) % 12] for x in range(6)] ... 1 ['Dec', 'Nov', 'Oct', 'Sep', 'Aug', 'Jul'] 2 ['Jan', 'Dec', 'Nov', 'Oct', 'Sep', 'Aug'] ...snip... 11 ['Oct', 'Sep', 'Aug', 'Jul', 'Jun', 'May'] 12 ['Nov', 'Oct', 'Sep', 'Aug', 'Jul', 'Jun'] >>> -- http://mail.python.org/mailman/listinfo/python-list