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

如何去除Python数组打印的括号、逗号与引号?高分榜输出优化

解决高分榜输出格式优化问题

嘿,我明白你现在的困扰——那些元组自带的括号、逗号确实让高分榜看起来乱糟糟的!问题出在你存储的是元组对象,直接打印它们就会输出Python默认的元组格式。咱们来快速搞定这个优化:

核心问题分析

你代码里的entry = score, name会创建一个元组(比如(95, "Alice")),当你用print(*Scores, sep='\n')打印时,Python会把每个元组转换成它的字符串表示形式,也就是带着括号和逗号的格式,这就是多余符号的来源。

解决方案:手动格式化每个条目

我们需要遍历排序后的高分列表,把每个元组里的姓名和分数提取出来,按自己想要的格式拼接成字符串再打印。这里有两种简单的实现方式:

方式1:使用for循环逐个格式化

把原来的print(*Scores, sep='\n')替换成下面的代码:

for score, name in Scores:
    print(f"{name}: {score}")

这种方式直观易懂,适合新手调试和修改格式(比如调整成"{score} - {name}"的样式)。

方式2:用生成器表达式一次性输出

如果想更简洁,可以用生成器配合join方法一次性输出所有行:

print('\n'.join(f"{name}: {score}" for score, name in Scores))

这种方式效率更高,代码也更紧凑。

修改后的完整代码

把方案整合到你的代码里,最终版本如下:

Scores = []
count = 0
question = True
while question == True:
    name = str(input("Whose score are you inputting?"))
    if name != "Done":
        score = int(input("What did " + name + " score?"))
        entry = score, name
        Scores.append(entry)
        count = count + 1
    elif name == "Done" and count < 5:
        print("You haven't input 5 scores yet!")
    else:
        question = False

Scores.sort(reverse=True)
# 替换成格式化输出代码
for score, name in Scores:
    print(f"{name}: {score}")

input("")

这样输出的高分榜就会变成清晰易读的样式,比如:

Alice: 95
Bob: 88
Charlie: 76

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:52:05