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

Python如何打印同键多值字典且不显示方括号?

调整学生成绩输出格式的解决方案

需求与现状

需要实现的功能:为多名学生记录数学、物理、化学三门科目成绩,以学生姓名为键、成绩列表为值存入字典,最终按以下格式输出:

student1 : mark1, mark2, mark3
student2 : mark1, mark2, mark3

当前使用的代码:

data = {}

while True:
    stuName = input("Student Name: ")
    math_marks = int(input("Math marks: "))
    physics_marks = int(input("Physics Marks: "))
    chemistry_marks = int(input("Chemistry Marks: "))

    data[stuName] = [math_marks, physics_marks, chemistry_marks]

    quit = input("Quit? ")
    if quit == 'q':
        break

print(*[str(k) + ' : ' + str(v) for k, v in data.items()], sep='\n')

但当前输出会保留列表的方括号,不符合预期:

student1 : [mark1, mark2, mark3]
student2 : [mark1, mark2, mark3]

修改方法

问题出在直接将成绩列表v转成字符串时,会保留列表的[]符号。只需要把成绩列表转换成用逗号分隔的字符串即可,用', '.join(map(str, v))实现——先把列表里的每个数字转成字符串,再用, 连接起来。

修改后的代码:

data = {}

while True:
    stuName = input("Student Name: ")
    math_marks = int(input("Math marks: "))
    physics_marks = int(input("Physics Marks: "))
    chemistry_marks = int(input("Chemistry Marks: "))

    data[stuName] = [math_marks, physics_marks, chemistry_marks]

    quit = input("Quit? ")
    if quit == 'q':
        break

# 关键修改:将成绩列表转为逗号分隔的字符串
print(*[f"{k} : {', '.join(map(str, v))}" for k, v in data.items()], sep='\n')

修改后就能得到符合要求的输出:

student1 : 90, 85, 92
student2 : 78, 88, 80

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 06:40:28