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

如何在Python成绩分析程序中以用户友好格式打印元组?

如何格式化成绩列表为「科目 => 成绩」的友好输出?附enumerate()用法解析

一、实现友好格式输出的最简方式

直接遍历列表中的每个元组,解构出科目和成绩即可——你之前用range()报错,是因为错误地把列表直接传给了只接受整数参数的range()。

代码实现

def print_marksheet(L):
    # 直接遍历每个元组,解构科目和成绩
    for subject, score in L:
        print(f"{subject} => {score}")

# 测试示例
L = [('English', 78), ('Mathematics', 99)]
print_marksheet(L)

输出结果

English => 78
Mathematics => 99

如果你非要用range()(不推荐)

如果执念想用range(),得先取列表长度作为参数,写法如下,但这种写法冗余,不如直接遍历元素:

def print_marksheet(L):
    for i in range(len(L)):
        subject, score = L[i]
        print(f"{subject} => {score}")

二、enumerate()的实际用法

*enumerate()*的核心作用是给遍历的元素附加索引序号,只有当你需要输出带序号的内容时才用得到,不是格式化这个成绩列表的必须工具。

带序号的成绩输出示例

def print_marksheet(L):
    # start=1 让序号从1开始,默认是0
    for idx, (subject, score) in enumerate(L, start=1):
        print(f"第{idx}门:{subject} => {score}")

# 测试
L = [('English', 78), ('Mathematics', 99)]
print_marksheet(L)

输出结果

第1门:English => 78
第2门:Mathematics => 99

拆解说明

  • enumerate(L)会生成形如(0, ('English', 78))的元组,第一个元素是索引,第二个是列表里的原始元组
  • start=1参数可以修改索引的起始值,避免默认从0开始的序号不符合日常习惯
  • 用idx, (subject, score)解构元组,把索引存到idx,同时把成绩元组里的两个值分别取出来

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 10:25:02