在python 3.3中按日期排序2d数组

时间:2014-02-05 17:17:46

标签: python arrays sorting date python-3.x

我有3个2d的数组,在它们里面是一个字符串,这个日期我想按照它们的日期对它们进行排序。 这些数组的结构都是这样的:

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']]

我想将它们变成这样的数组:

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']]

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

1 个答案:

答案 0 :(得分:4)

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

如果因为某些原因你反对dateutil.parser

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

我在常规时间模块上推荐日期时间的原因是,日期时间可以看到将来我们测试的那样...而时间模块只能达到2035年

但是你也可以用时间模块

来做
import time
print sorted(big_array,key=lambda x:time.strptime(x[1],"%d-%m-%Y")