转载自:python 日期排序 - lkprof - 博客园
对于不规则的日期列表,诸如2022-2-22 或者 2022年2月22日,这种特殊格式,使用sort()本人尝试困难,于是可以直接尝试使用以下的交换排序算法,即可实现排序。
【注:patt的正则表达式的符号自己修改好】
#利用正则表达式
import re
data = ['2010-11-23','1989-3-7','2010-1-5','978-12-1','2010-2-4']
patt = '(\d+)-(\d+)-(\d+)'
#交换排序
for i in range(len(data)-1):
for x in range(i+1, len(data)):
j = 1
while j<4:
lower = re.match(patt, data[i]).group(j)
upper = re.match(patt, data[x]).group(j)
#print lower,upper
if int(lower) < int(upper):
j = 4
elif int(lower) == int(upper):
j += 1
else:
data[i],data[x] = data[x],data[i]
j = 4
print data