Python将当前列表转换为2d

2024-04-19 18:03:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经设计了一个代码,它的功能如我所愿,通过询问我的私立学校的管理员学生人数,每个学生要输入多少分数,最后是他们所修课程的课程代码。你知道吗

COLS= int(input("number of students to enter: "))
ROWS= int(input("number of grades per student: "))


def main(COLS,ROWS):
    number =[]


    for c in range(COLS):
        student =(input("enter student Name: "))
        number.append(student)

        for r in range (ROWS):
            course=input("Enter course Code: ")
            number.append(course)
            grades =(input("Enter grade for module: "))
            number.append(grades)

    print(number)

main(COLS,ROWS)

输出示例如下:

number of students to enter: 3
number of grades per student: 2
enter student Name: LarryH
Enter course Code: Math202
Enter grade for module: 80
Enter course Code: Sci101
Enter grade for module: 90
enter student Name: JeromeK
Enter course Code: TT101
Enter grade for module: 60
Enter course Code: PSY205
Enter grade for module: 50
enter student Name: CheungL
Enter course Code: PS100
Enter grade for module: 80
Enter course Code: Math300
Enter grade for module: 50
['LarryH', 'Math202', '80', 'Sci101', '90', 'JeromeK', 'TT101', '60', 'PSY205', '50', 'CheungL', 'PS100', '80', 'Math300', '50']

现在代码运行了,除了我输出的最后一行,这里的列表给出了学生以及他们各自的成绩和课程代码。你知道吗

我正在尝试生成2d列表,而不是生成1d列表的输出,例如:

[
   ["Andre", "MA22", 79, "MA300", 88, "CM202", 69],
   ["Larry", "PS44", 67, "MA555", 80, "ACC200", 67], 
   ...
  ]

有没有人对我可以在代码中修改什么以产生像上面那样的期望输出有什么建议

谢谢


Tags: of代码numberforinputcodestudentrows
1条回答
网友
1楼 · 发布于 2024-04-19 18:03:49

在第一个循环中,您可以创建一个新的临时数组来存储该特定学生的数据,例如:

for c in range(COLS):
    studentInfo = [] # Info per-student
    student =(input("enter student Name: "))
    studentInfo.append(student)

    for r in range (ROWS):
        course=input("Enter course Code: ")
        studentInfo.append(course)
        # ...
        # ...

    number.append(studentInfo)

你也可以考虑将学生信息存储在字典中,而不是列表中,这样顺序就不那么重要了。所以不是:

singleStudentInfo = ["Andre", "MA22", 79, "MA300", 88, "CM202", 69]

你应该:

singleStudentInfo = {"name": "Andre", "MA22": 79, "MA300": 88, "CM202": 69}

相关问题 更多 >