首页 > 解决方案 > 如何按信息对日志文件进行排序?

问题描述

如何将项目插入到正确位置的数组中?我想按其信息对日志文件进行排序:

Line 1: 2019/06/28 Hello:world id:2346
Line 2: 2019/06/28 Hello:life id:3774
Line 3: 2019/06/25 Hello:world id:1643
             ^          ^         ^
           Pos[0]     Pos[1]    Pos[2]

如何仅通过信息的位置对这些行进行排序?

标签: pythonarrayspython-3.xsorting

解决方案


您可以使用自定义键功能以自定义方式对列表进行排序:

def keyfn(line):
    date, hello, id_ = line.strip().split()
    _, num = id_.split(":")
    return int(num)

sorted_list = sorted(lines, key=keyfn)

这假设没有额外的空格,因此总是正好有 3 个字段。


推荐阅读