如何获取此程序中具有最高值的前3个字符串?

2024-09-28 16:58:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python程序,可以打印字符串,比如

@SP_YSNSB id=0
0054 log out
@SP_23RTY id=0
0387 pop
@TRIO_9078 id=0
0098 hench
@TRE_4657838.c id=0
0056 pop
@WRYE_LKP.CO id=0
0078 ffg

“@SP_23RTY”是标题,“0387 pop”是循环前执行的行数

如何打印具有前3行最高值的前3个标题

输出应该是

@SP_23RTY id=0
0387 pop
@TRIO_9078 id=0
0098 hench
@WRYE_LKP.CO id=0
0078 ffg

任何帮助都将不胜感激


Tags: 字符串程序logid标题triooutpop
1条回答
网友
1楼 · 发布于 2024-09-28 16:58:34

您可以使用re

import re
lines = list(filter(None, content.split('\n')))
grouped = [[lines[i], lines[i+1]] for i in range(0, len(lines), 2)]
new_grouped = sorted(grouped, key=lambda x:int(re.findall('\d+', x[-1])[0]), reverse=True)[:3]
for a, b in new_grouped:
  print(f'{a}\n{b}')

输出:

@SP_23RTY id=0
0387 pop
@TRIO_9078 id=0
0098 hench
@WRYE_LKP.CO id=0
0078 ffg

相关问题 更多 >