Python-2D数组按日期和时间排序

And*_*ndy 0 python numpy python-2.7 python-3.x

我有以下二维数组:

arr = [
["A", "B", "C", "10.03.2030", "14:06"],
["W", "R", "Q", "09.04.2025", "12:06"],
["Y", "X", "V", "11.05.2022", "12:06"],
["Z", "N", "H", "10.03.2030", "14:06"],
]
Run Code Online (Sandbox Code Playgroud)

我想按&时间对数组进行排序,有没有一种快速的方法可以在python中做到这一点?

提前致谢

安迪

Mos*_*oye 5

您可以通过以下方式进行排序:首先将日期转换为ISO8601格式(而不是转换为实际日期datetime.strptime非常慢),然后使用已经标准化的时间字符串打破平局:

lst = sorted(arr, key=lambda x: (x[3].split('.')[::-1], x[-1]))
print(lst)
Run Code Online (Sandbox Code Playgroud)

x[3].split('.')[::-1] 从原始日期字符串构建ISO日期列表,首先输入年份,然后输入月份,然后输入日期。


[['Y', 'X', 'V', '11.05.2022', '12:06'],
 ['W', 'R', 'Q', '09.04.2025', '12:06'],
 ['A', 'B', 'C', '10.03.2030', '14:06'],
 ['Z', 'N', 'H', '10.03.2030', '14:06']]
Run Code Online (Sandbox Code Playgroud)