【问题标题】:How to sort array with unique elements by datetime (Python)如何按日期时间(Python)对具有唯一元素的数组进行排序
【发布时间】:2015-06-19 08:50:00
【问题描述】:

所以我的问题是我将 excel 文件导出为 csv 文件。我已将文件导入 Python 并将其添加到如下所示的矩阵中:

A = [[1, '13/04/2015 12:22:45'],
     [2, '13/04/2015 12:22:46'],
     [3, '12/04/2015 12:30:00']]

我想按日期和时间排序。我找到了几种使用内置 sorted() 函数对日期时间进行排序的解决方案,但没有一个示例具有带有其他值的附加数组列。

感谢您的帮助!

【问题讨论】:

  • 你能分享一些你的排序代码吗?

标签: python datetime python-3.x multidimensional-array sorted


【解决方案1】:

首先,您可能希望能够从您拥有的字符串构造日期时间对象以进行比较:

import datetime
def make_datetime(lst):
    date_str = lst[1]
    return datetime.datetime.strptime(date_str, '%d/%m/%Y %H:%M:%s')

现在您可以将其用作排序功能的键:

sorted_A = sorted(A, key=make_datetime)

【讨论】:

  • 感谢您的帮助!我没有意识到我必须先转换为日期时间对象。我的原始代码是根据下面的 zachgates7's answer 之类的字符串进行排序的。再次感谢!
【解决方案2】:

您可以使用第二个元素(您的日期时间)进行排序

A.sort(key=lambda i: i[1])

这是假设您要按字符串排序,而不是按实际日期排序。否则,请查看 mgilson 的回答。

【讨论】:

  • 嗯...我认为这不太有效:[[1, '13/04/2015 00:00:00'], [2, '12/05/2015 00:00:00']] -- 您无法将字符串与 OP 正在使用的当前日期格式进行比较。
  • 我收回了我的投票,例如,"12/04/2000" > "11/05/2000"True
猜你喜欢
  • 2014-10-19
  • 2020-02-29
  • 1970-01-01
  • 1970-01-01
  • 2023-02-15
  • 2017-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多