【问题标题】:sort 2d array by date in python 3.3在python 3.3中按日期对二维数组进行排序
【发布时间】:2014-03-02 06:46:48
【问题描述】:

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

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

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

我只是需要某种方法来解决这个问题,因为我不知道该怎么做。提前感谢您的帮助

【问题讨论】:

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


    【解决方案1】:
    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")
    

    【讨论】:

    • 感谢工作,我使用了日期时间,因为我在程序中的其他地方使用了该导入
    猜你喜欢
    • 1970-01-01
    • 2021-03-30
    • 2020-01-18
    • 2013-08-17
    • 2016-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多