在python 3.3中按日期对二维数组进行排序

use*_*090 2 python arrays sorting date python-3.x

我有 3 个二维数组,其中有一个字符串,它是一个日期,我想按其中的日期对它们进行排序。数组的结构都是这样的:

array1 = [[1,'29-04-2013','U11'],[2,'20-05-2013','U11']]
array2 = [[1,'06-05-2013','U13'],[2,'03-06-2013','U13']]
array3 = [[1,'06-03-2013','U15'],[2,'03-07-2013','U15']]
Run Code Online (Sandbox Code Playgroud)

我想将它们放入这样的数组中:

all = [[1,'06-03-2013','U15'],[1,'29-04-2013','U11'],[1,'06-05-2013','U13'],[2,'20-05-2013','U11'],[2,'03-06-2013','U13'],[2,'03-07-2013','U15']]
Run Code Online (Sandbox Code Playgroud)

我只需要某种方法来解决这个问题,因为我不知道我将如何做到这一点。提前感谢您的帮助

Jor*_*ley 6

big_array = array1 + array2 + array3
import dateutil.parser as p
print sorted(big_array,key=lambda x: p.parse(x[1]))
Run Code Online (Sandbox Code Playgroud)

如果出于某种原因你反对 dateutil.parser

import datetime
print sorted(big_array,key=lambda x:datetime.datetime.strptime(x[1],"%d-%m-%Y")
Run Code Online (Sandbox Code Playgroud)

我推荐 datetime 超过常规时间模块的原因是 datetime 可以看到我测试过的未来......而时间模块只能工作到 2035

但是你也可以用时间模块来做

import time
print sorted(big_array,key=lambda x:time.strptime(x[1],"%d-%m-%Y")
Run Code Online (Sandbox Code Playgroud)