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

Python遍历切片列表移除梦幻足球队名字符串末尾0的实现方法

解决方法

原代码错误原因

原rank列表按[排名, 带尾0的队名, 积分]每3个元素为一组排列,你的代码存在两个核心问题:

  1. 循环索引没有对应到队名实际所在的位置:队名全部在索引为1、4、7……的位置,即步长为3、起始索引为1的序列,你原循环的索引i修改的是列表前几位的元素,没有命中队名位置。
  2. 列表推导式逻辑错误:你遍历了所有队名的所有字符做判断,而不是对单个队名做末尾去0处理,自然无法得到正确结果。

最优实现方案

直接用字符串内置的rstrip('0')方法去掉队名末尾的0,再按3个元素为一组的规则格式化输出即可,代码简洁且时间复杂度为O(n),效率最高:

rank = ['1', 'Kaufman Foundation0', '0', '2', 'sasicc e friarielli0', '0', '3', 'Mordi1992 Team0', '0', '4', 'Japanese Cry Team0', '0', '5', 'Le Rondini FC0', '0', '6', 'Team Mclaury0', '0', '7', 'Team Discio0', '0', '8', 'Papa Sarto Calcio0', '0']

# 方法1:分步处理,可读性高
# 先批量处理所有队名的末尾0
for idx in range(1, len(rank), 3):
    rank[idx] = rank[idx].rstrip('0')
# 按要求格式输出
output_list = []
for i in range(0, len(rank), 3):
    format_str = f"{rank[i]} - {rank[i+1]} {rank[i+2]}"
    output_list.append(format_str)
    print(format_str)

# 方法2:一行式生成结果,代码更精简
output_list = [f"{r} - {n.rstrip('0')} {s}" for r, n, s in zip(rank[::3], rank[1::3], rank[2::3])]

运行后输出结果完全符合要求:

1 - Kaufman Foundation 0
2 - sasicc e friarielli 0
3 - Mordi1992 Team 0
4 - Japanese Cry Team 0
5 - Le Rondini FC 0
6 - Team Mclaury 0
7 - Team Discio 0
8 - Papa Sarto Calcio 0

内容的提问来源于stack exchange,提问作者Emiliano

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 09:39:00