Python 将datetime转换为字符串和格式
我有以下列表,其中包含日期,但未格式化为datetime,仅包含字符串:Python 将datetime转换为字符串和格式,python,string,sorting,datetime,format,Python,String,Sorting,Datetime,Format,我有以下列表,其中包含日期,但未格式化为datetime,仅包含字符串: MyList = ['25/4/2014', '2/12/2014', '15/7/2014'] 我想把这个列表从最早的日期排序到最晚的日期。 我将以下代码放在一起: MyList = ['25/4/2014', '2/12/2014', '15/7/2014'] MyList2 = [] for i in MyList: MyList2.append(datetime.strptime(i, "%d/%m/%Y
MyList = ['25/4/2014', '2/12/2014', '15/7/2014']
我想把这个列表从最早的日期排序到最晚的日期。
我将以下代码放在一起:
MyList = ['25/4/2014', '2/12/2014', '15/7/2014']
MyList2 = []
for i in MyList:
MyList2.append(datetime.strptime(i, "%d/%m/%Y"))
SortedList = sorted(MyList2)
Result = []
for n in SortedList:
m = n.strftime('%d/%m/%Y')
Result.append(m)
print Result
列表已排序,但问题是格式略有不同:
['25/04/2014'、'15/07/2014'、'02/12/2014']
请注意日数和月数中额外的0
有没有办法使生成的列表具有原始格式,例如4月份为4而不是04
多谢各位 使用带有排序的键函数;这将解析日期以进行排序,保留原始值不变:
SortedList = sorted(MyList, key=lambda d: datetime.strptime(d, "%d/%m/%Y"))
然后根据键函数的返回值而不是值本身对列表进行排序。在内部,Python对这些值进行修饰,生成keyv,None,v的元组,None确保v没有参与破坏关系,对这些值进行排序,然后再次取消修饰
演示:
使用带有排序的键函数;这将解析日期以进行排序,保留原始值不变:
SortedList = sorted(MyList, key=lambda d: datetime.strptime(d, "%d/%m/%Y"))
然后根据键函数的返回值而不是值本身对列表进行排序。在内部,Python对这些值进行修饰,生成keyv,None,v的元组,None确保v没有参与破坏关系,对这些值进行排序,然后再次取消修饰
演示: