另一个版本使用了和我的另一个答案相同的逻辑。from datetime import date, timedelta
# Definition 1: 1/1/14, 1/2/14, 1/2/14, 1/3/14 is consider consecutive
# Definition 2: 1/1/14, 1/2/14, 1/2/14, 1/3/14 is consider not consecutive
# datelist = [date(2014, 1, 1), date(2014, 1, 3),
# date(2013, 12, 31), date(2013, 12, 30)]
# datelist = [date(2014, 2, 19), date(2014, 2, 19), date(2014, 2, 20),
# date(2014, 2, 21), date(2014, 2, 22)]
datelist = [date(2014, 2, 19), date(2014, 2, 21),
date(2014, 2, 22), date(2014, 2, 20)]
datelist.sort()
previousdate = datelist[0]
for i in range(1, len(datelist)):
#if (datelist[i] - previousdate).days == 1 or (datelist[i] - previousdate).days == 0: # for Definition 1
if (datelist[i] - previousdate).days == 1: # for Definition 2
previousdate = datelist[i]
else:
previousdate = previousdate + timedelta(days=-1)
if datelist[-1] == previousdate:
print "dates are consecutive"
else:
print "dates are not consecutive"