Python姓名与高分列表的追加、排序及并排打印问题求助
姓名分数列表的追加、排序与格式化输出
当前代码的问题
你现在的代码只实现了按分数排序后返回姓名列表,但没关联分数,也没处理追加数据和格式化打印的需求,我们可以调整逻辑,一次性解决所有需求。
改进方案
把姓名和分数绑定在一起处理更直观,具体步骤如下:
- 追加新数据
直接用列表的append()方法添加新的姓名和分数,比如新增一名玩家:
name.append("Tom") score.append(6)
关联并排序
用zip()把分数和姓名打包成元组,默认按元组第一个元素(分数)升序排序,正好符合从低到高的需求。格式化打印前3名
遍历排序后的前3个元素,逐个输出姓名和分数,避免列表括号的样式。
完整代码
name = ["Mary", "Lisa", "Lumby"] score = [5, 7, 4] # 追加新玩家数据(示例) name.append("Tom") score.append(6) name.append("Anna") score.append(3) # 关联分数与姓名,按分数从低到高排序 sorted_pairs = sorted(zip(score, name)) # 打印前3名,格式化为姓名+分数的形式 print("分数从低到高的前3名:") for s, n in sorted_pairs[:3]: print(f"{n}: {s}")
输出效果
运行后会得到:
分数从低到高的前3名: Anna: 3 Lumby: 4 Mary: 5
额外简化技巧
如果需要多次添加玩家,可以写个小函数减少重复代码:
def add_player(n, s): name.append(n) score.append(s) # 调用添加新玩家 add_player("Jack", 8)
内容的提问来源于stack exchange,提问作者Outblast2
相关产品推荐
相关产品推荐

