ArrayData = [['a', 'ad', '02/10/2021 7:39:19 am', 'Rank:1'],
['b', 'db', '02/10/2021 6:25:20 am', 'Rank:2'],
['a', 'sd', '02/10/2021 5:39:19 am', 'Rank:3'],
['b', 'esas', '02/10/2021 6:25:20 am', 'Rank:1'],
['a', 'aser', '02/10/2021 9:39:19 am', 'Rank:2'],
['d', 'ssss', '02/10/2021 11:39:19 am', 'Rank:1']]
剧本应该
根据时间对同一组进行排序(例如,首先对组“a”进行排序,然后对组“b”、“c”、“d”)进行排序。最近的时间和日期排名更高
更新每个子阵列中的“秩”
预期产出:
[['d', 'ssss', '02/10/2021 11:39:19 am', 'Rank:1'],
['b', 'esas', '03/10/2021 6:25:20 am', 'Rank:2'],
['b', 'db', '02/10/2021 6:25:20 am', 'Rank:1'],
['a', 'aser', '02/10/2021 9:39:19 am', 'Rank:3'],
['a', 'ad', '02/10/2021 7:39:19 am', 'Rank:2'],
['a', 'sd', '02/10/2021 5:39:19 am', 'Rank:1']]
这是我目前写的剧本
import operator
result = sorted(ArrayData, key=operator.itemgetter(2), reverse=True)
print(result)
我可以知道如何改进它吗
其他的解决方案对我来说太复杂了。如果需要,可以使用字符串比较,而不必求助于
datetime
s下面是我装配在一起的一个定制解决方案,它似乎提供了所需的输出:
请注意,这会将日期时间字符串转换为
datetime.datetime
对象。这可能是可取的,也可能不是可取的,但如果您计划执行涉及这些日期的任何其他操作,则至少建议您这样做。如果您真的希望它们作为字符串,请参阅注释的代码行另外请注意,我假设您的日期为
dd/mm/yyyy
。如果它们是mm/dd/yyyy
,则需要在DATETIME_FORMAT
中切换%d
和%m
演示:
相关问题 更多 >
编程相关推荐