Python程序:显示嵌套列表中所有第二低成绩的学生姓名

Python程序:显示嵌套列表中所有第二低成绩的学生姓名

在Python中,我们可以使用嵌套列表来表示学生成绩。每个学生的成绩都存储在一个列表中,所有学生的成绩再存储在一个父列表中。例如,下面是一个包含4个学生的成绩情况:

grades = [
    ['John', 85],
    ['Alice', 90],
    ['Bob', 75],
    ['Lee', 80]
]

在这个列表中,每个学生的成绩都是一个包含两个元素的列表,第一个元素是学生姓名,第二个元素是成绩。我们现在的问题是:如何找到所有第二低的成绩,并输出对应的学生姓名?

解决方案

为了解决这个问题,我们可以使用Python内置的排序函数sorted()。首先,我们对成绩列表按照成绩从低到高排序,然后找到第二低的成绩,最后再遍历一遍成绩列表,输出对应的学生姓名。

下面是代码的实现:

grades = [
    ['John', 85],
    ['Alice', 90],
    ['Bob', 75],
    ['Lee', 80]
]

# 按照成绩从低到高排序
sorted_grades = sorted(grades, key=lambda x: x[1])

# 找到第二低的成绩
second_lowest_grade = sorted_grades[1][1]

# 输出所有第二低的成绩对应的学生姓名
for name, grade in grades:
    if grade == second_lowest_grade:
        print(name)

在这个代码中,sorted()函数使用了一个关键字参数key,这个参数指定了排序的规则。在本例中,我们使用了lambda表达式来指定按照成绩从低到高排序。

接下来,我们使用sorted_grades[1][1]来找到所有成绩中第二低的成绩。注意,这里使用了索引1而不是0来获取第二个元素,是因为列表是从0开始索引的。

最后,我们遍历一遍成绩列表,并比较每个学生的成绩与第二低的成绩是否相等。如果相等,就输出对应的学生姓名。

完整代码

下面是完整的Python代码:

grades = [
    ['John', 85],
    ['Alice', 90],
    ['Bob', 75],
    ['Lee', 80]
]

# 按照成绩从低到高排序
sorted_grades = sorted(grades, key=lambda x: x[1])

# 找到第二低的成绩
second_lowest_grade = sorted_grades[1][1]

# 输出所有第二低的成绩对应的学生姓名
for name, grade in grades:
    if grade == second_lowest_grade:
        print(name)

运行上面的代码,输出结果如下:

Lee
John

结论

在Python中,我们可以使用嵌套列表来表示学生成绩。为了找到所有第二低的成绩,我们可以使用sorted()函数来排序,然后找到第二低的成绩,最后遍历一遍成绩列表,输出对应的学生姓名。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程