• 赛码系统——根据文件生成时间先后顺序对文件进行排序


    题目描述:

    运维工程师采集到某产品线网运行一天产生的log文件N,现需根据文件生成时间先后顺序对文件进行排序,文件生成格式为:yyyy-mm-dd hh:mm:ss。
    yyyy表示年份(1970-2022)
    mm表示月份(0-11)
    dd表示天(1-31)
    hh表示小时(0-23)
    mm表示分钟(0-59)
    ss表示秒(0-59)
    时间可能并没有补全,也就是说,2022-07-01 01:01:01也可能表示为2022-7-1 1:1:1.1。
    输入描述:
    第一行输入一个整数N表示文件个数,1<=N<=100000,接下来N行输入M个时间。
    输出描述:
    按文件生成时间先后排序,如果有两个时间表示的时间相同,则保持输入顺序。

    示例1:

    输入:

    2022-02-02 01:41:8
    2022-03-03 1:09.21
    
    • 1
    • 2

    输出:

    2022-02-02 01:41:8
    2022-03-03 01:09.21
    
    • 1
    • 2

    Python解题:

    import sys
    import datetime
    
    if __name__=="__main__":
    	list_time=[]
    	while 1:
    		try:
    			line=input()
    			list_time.append(line)
    		except:
    			break
    	def get_list(date):
    		if "." in date:
    			return datetime.datetime.strptime(date,"%Y-%m-%d %H:%M.%S").timestamp()
    		else:
    			return datetime.datetime.strptime(date,"%Y-%m-%d %H:%M:%S").timestamp()
    	list_time1=sorted(list_time,key=lambda date:get_list(date))
    	for item in list_time1:
    		if "." in item:
    			tmp=datetime.datetime.strptime(item,"%Y-%m-%d %H:%M.%S").strftime("%Y-%m-%d %H:%M.%S")
    			print(tmp)
    		else:
    			print(item)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    用到了python——datetime模块中重要的两个函数:

    1、strftime:将给定格式的日期时间对象转换为字符串。日期时间对象=>字符串,控制输出格式。
    2、strptime:将字符串解析为给定格式的日期时间对象。字符串=>日期时间对象,解析字符串。
    在这里插入图片描述

  • 相关阅读:
    添加驱动模块到内核的两种方法
    博弈论——劳资博弈
    [附源码]计算机毕业设计JAVA基于JSP健身房管理系统
    opencv ---特征描述符
    SpringBoot(一)快速入门
    码农的转型之路-多年以来的反思
    结合原理图关于STM32后期例程的更新说明
    自动化测试文档
    蓝桥杯小白算法赛 第七场 2.霓虹(二维数组)
    弹指间计算机协会 2021“千里码”程序设计竞赛 题面
  • 原文地址:https://blog.csdn.net/ly17809212771/article/details/126407102