gpt4 book ai didi

python - 在双数组列表中对日期时间进行排序

转载 作者:太空宇宙 更新时间:2023-11-04 08:11:03 24 4
gpt4 key购买 nike

我有一个包含多个 [start time, end time] 组合的日期时间列表。如何有效地根据开始时间对列表进行排序?

[
[datetime.datetime(2013, 1, 2, 14, 0), datetime.datetime(2013, 1, 2, 16, 0)],
[datetime.datetime(2013, 1, 1, 9, 0), datetime.datetime(2013, 1, 1, 10, 0)],
[datetime.datetime(2013, 1, 1, 12, 0), datetime.datetime(2013, 1, 1, 16, 0)],
]

我知道 sorted() 和 attrgetter() 适用于命名元组列表,但是否有适用于上述情况的排序函数?

最佳答案

sorted 将正常工作。它应该按字典顺序对内部列表进行排序。意思是,它将首先比较第一个元素(开始时间),然后如果它们相同,它将比较第二个元素(结束时间)。

>>> data
[[datetime.datetime(2013, 1, 2, 14, 0), datetime.datetime(2013, 1, 2, 16, 0)], [datetime.datetime(2013, 1, 1, 9, 0), datetime.datetime(2013, 1, 1, 10, 0)], [datetime.datetime(2013, 1, 1, 12, 0), datetime.datetime(2013, 1, 1, 16, 0)]]
>>> sorted(data)
[[datetime.datetime(2013, 1, 1, 9, 0), datetime.datetime(2013, 1, 1, 10, 0)], [datetime.datetime(2013, 1, 1, 12, 0), datetime.datetime(2013, 1, 1, 16, 0)], [datetime.datetime(2013, 1, 2, 14, 0), datetime.datetime(2013, 1, 2, 16, 0)]]

如果您需要它(您可能会需要),您可以指定一个键函数。假设您根本不关心结束时间,只想按开始时间排序(如果多个记录具有相同的开始时间,则保留原始顺序而不考虑结束时间):

sorted(data, key=operator.itemgetter(0))

会成功的。

关于python - 在双数组列表中对日期时间进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22343737/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com