Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何根据日志文件的信息对其进行排序?_Python_Arrays_Python 3.x_Sorting - Fatal编程技术网

Python 如何根据日志文件的信息对其进行排序?

Python 如何根据日志文件的信息对其进行排序?,python,arrays,python-3.x,sorting,Python,Arrays,Python 3.x,Sorting,如何将项目插入到数组中的正确位置? 我想按信息对日志文件进行排序: 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] 如何仅通过信息的位置对这些行进行排序?您可以使用

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

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]

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

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

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

sorted_list = sorted(lines, key=keyfn)

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

@ProgrammersJones,您能提供一个输入/输出的示例吗?输入:文件/列表(一个对象是一行)+信息位置(如我的问题所示),所以您想按
id
排序吗?允许您使用外部库作为熊猫吗?对于上述输入,您希望作为输出的输出是什么?输出可以是一个已排序的列表,因此在中可以使用for循环打印它。如果有新行字符,是否最好使用num.rstrip()来剥除?@pvpkiran在这种情况下实际上不需要。