You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python程序中输出执行行数最高的前3个头部字符串?

解决方法:提取执行行数最高的前3个头部内容

没问题,我来帮你搞定这个需求!我们可以通过几个清晰的步骤来实现你要的功能,下面是具体的思路和代码:

步骤拆解

  • 拆分条目:首先把输入字符串里每个以@开头的独立条目提取出来
  • 提取并转换行数:从每个条目中取出代表执行行数的四位数字,转成整数以便正确排序
  • 排序取前3:按行数从高到低排序后,取前3个条目拼接成最终输出

完整代码实现

import re

# 替换成你的输入字符串
input_str = "@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"

# 1. 提取所有@开头的完整条目
# 正则表达式匹配:以@开头,直到下一个@或者字符串结尾的内容
entries = re.findall(r'@\S+?\s.*?(?=@|$)', input_str)

# 2. 按执行行数降序排序
# 每个条目按空格拆分后,第3个元素(索引2)是执行行数,转成整数后取负值实现降序
sorted_entries = sorted(entries, key=lambda item: -int(item.split()[2]))

# 3. 取前3个条目并拼接成结果字符串
top_3_result = ' '.join(sorted_entries[:3])

# 输出最终结果
print(top_3_result)

代码说明

  1. 正则提取条目:用re.findall可以精准捕获每个以@开头的完整内容,避免手动拆分时的边界问题
  2. 排序逻辑:把行数转成整数后取负值,这样sorted默认的升序排序就会等价于按行数降序排列,简单直观
  3. 结果拼接:用' '.join()把前3个条目合并成你需要的格式

运行这段代码后,输出结果正好是你期望的:

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

内容的提问来源于stack exchange,提问作者Claire Louise Sajol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:55:02