def compare(item1, item2):
format = '%m/%d/%Y' #changed the date format
# convert string dates to Date type
date1 = datetime.datetime.strptime(item1[:10], format).date() #removed comma from item1[:,10]
date2 = datetime.datetime.strptime(item2[:10], format).date() #same as above
if date1 < date2:
return -1
elif date1 > date2:
return 1
else:
return 0
a = ["08/19/2014100%ABC10/02/2014F","02/12/2012100%ABC10/02/2014F",
"08/29/2014100%ABC10/02/2012F"]
a.sort(compare)
只需调用
sorted()
,并将key
参数设置为一个函数,该函数从字符串中提取日期并将其转换为datetime.datetime
对象。在或者,如果您想就地排序:
^{pr2}$如果您真的想按字符串中的最后一个日期排序,只需将key函数更改为:
^{3}$下面的代码定义了一个自定义排序函数
compare
,它从列表中提取两个元素,并根据每个字符串开头出现的日期对它们进行排序。如果要使用嵌入在字符串末尾的日期,可以相应地修改代码。在相关问题 更多 >
编程相关推荐