【问题标题】:How to sort a list of time values?如何对时间值列表进行排序?
【发布时间】:2013-07-16 20:06:00
【问题描述】:

我有一个从网络日志中提取的时间值的 python 列表。我有%H:%M:%S 格式的列表。如何按升序对时间值进行排序?

【问题讨论】:

    标签: python list sorting time


    【解决方案1】:

    只需 sorted(time_list) 即可。

    >>> sorted(["14:10:01", "03:12:08"])
    ["03:12:08", "14:10:01"]
    

    【讨论】:

      【解决方案2】:
      import time
      
      sorted((time.strptime(d, "%H:%M:%S") for d in time_list), reverse=True)
      

      【讨论】:

        【解决方案3】:
        sorted([tuple(map(int, d.split(":"))) for d in my_time_list])
        

        my_time_list 中的每个元素都是您描述的形式,例如:

        >>> my_time_list
        ["03:12:08", "14:10:01"]
        

        【讨论】:

        • 它返回 [[3, 12, 8], [14, 10, 1]]。返回列表中元素的数据类型与输入列表不同,可能不是他的内容。
        • 我经常将时间单位转换为整数,因为 1)您可以进行类型检查 2)它可以更轻松地与数据时间模块类型进行互操作
        • 您也可以使用key 参数来执行此操作以不更改值:sorted(my_time_list, key=lambda d: tuple(map(int, d.split(":"))))
        【解决方案4】:

        您应该可以使用方法sort(key=str.lower),因为您的时间被解析为字符串

        【讨论】:

          猜你喜欢
          • 2021-12-20
          • 1970-01-01
          • 2019-03-14
          • 1970-01-01
          • 1970-01-01
          • 2010-11-18
          • 2019-03-12
          • 2012-12-22
          相关资源
          最近更新 更多