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

使用嵌套列表制作毕业文凭(Python):可行性及报错求助

毕业文凭嵌套列表需求完全可行,附修正实现

需求肯定能实现

这个需求逻辑完全通顺,嵌套列表天生适合承载「文凭→课程/学生→小组→学生→个人信息」的层级结构,完全可以落地。

你的代码问题在哪

你写的代码逻辑完全跑偏了——反复把数字转成字符列表、移除元素再嵌套,根本没贴合「5组→每组5个学生→每个学生5项信息」的结构设计,添加输入时自然会一堆报错。比如list(str(i))会把数字拆成单个字符的列表,后续remove操作很容易因为找不到元素触发错误,而且这种嵌套方式根本装不下学生的5项信息。

正确实现示例

方式1:手动构造固定结构

先定义课程列表,再按要求的层级搭建学生列表:

# 构建毕业文凭嵌套结构
diploma = {
    "课程列表": ["高等数学", "计算机基础", "专业核心课", "实践实训", "毕业设计"],
    "学生列表": []
}

# 生成5个小组
for group_num in range(1, 6):
    current_group = []
    # 每组添加5名学生
    for student_num in range(1, 6):
        # 每名学生的5项示例信息,可按需修改
        student_info = [
            f"小组{group_num}学生{student_num}",
            "软件工程",
            88.5,  # 平均成绩
            "良好",  # 毕业评级
            "2020级"
        ]
        current_group.append(student_info)
    diploma["学生列表"].append(current_group)

# 验证结构
print(diploma)

方式2:支持用户动态输入

如果需要让用户输入信息,用嵌套循环接收即可:

diploma = {
    "课程列表": [],
    "学生列表": []
}

# 输入5门课程
print("请输入5门课程名称:")
for _ in range(5):
    course = input("课程名:")
    diploma["课程列表"].append(course)

# 输入学生信息
for group_idx in range(5):
    print(f"\n--- 第{group_idx+1}组学生信息录入 ---")
    group = []
    for student_idx in range(5):
        print(f"\n请输入第{student_idx+1}名学生的5项信息(姓名、专业、平均成绩、毕业评级、年级):")
        name = input("姓名:")
        major = input("专业:")
        score = float(input("平均成绩:"))
        rating = input("毕业评级:")
        grade = input("年级:")
        student = [name, major, score, rating, grade]
        group.append(student)
    diploma["学生列表"].append(group)

# 输出最终结果
print("\n=== 生成的毕业文凭结构 ===")
print(diploma)

这两种写法都严格对应了教授的要求,不管是固定数据还是用户输入,都能正常运行,不会出现你之前的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 22:25:22