def standardize_time(time_str):
# 将时间格式标准化为 HH:MM:SS,NNN
parts = time_str.replace('.', ',').split(',')
time_part = parts[0]
millisecond_part = parts[1] if len(parts) > 1 else '000'
# 补全时间部分
time_segments = time_part.split(':')
h = time_segments[0].zfill(2)
m = time_segments[1].zfill(2) if len(time_segments) > 1 else '00'
s = time_segments[2].zfill(2) if len(time_segments) > 2 else '00'
# 补全毫秒部分
millisecond_part = millisecond_part.ljust(3, '0')
return f"{h}:{m}:{s},{millisecond_part}"
def sort_logs(n, logs):
# 标准化时间并记录原始索引
standardized_logs = [(standardize_time(log), idx) for idx, log in enumerate(logs)]
# 按时间升序排序,如果时间相同则按输入顺序排序
standardized_logs.sort(key=lambda x: (x[0], x[1]))
# 提取排序后的时间
sorted_logs = [logs[idx] for _, idx in standardized_logs]
return sorted_logs
# 自定义输入
n = int(input("请输入日志条数:"))
logs = [input("请输入时间:") for _ in range(n)]
sorted_logs = sort_logs(n, logs)
for log in sorted_logs:
print(log)
解决步骤
- 输入处理:
读取日志条数 nn。
读取每条日志的时间。
- 时间格式标准化:
将时间格式统一为 HH:MM:SS,NNN 的形式,方便比较。
- 排序:
按照时间进行升序排序。如果两个时间相同,则保持输入顺序。
- 输出结果:
输出排序后的时间。