Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将datetime转换为字符串和格式_Python_String_Sorting_Datetime_Format - Fatal编程技术网

Python 将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

我有以下列表,其中包含日期,但未格式化为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"))
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没有参与破坏关系,对这些值进行排序,然后再次取消修饰

演示: