Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python basic的嵌套列表_Python - Fatal编程技术网

使用python basic的嵌套列表

使用python basic的嵌套列表,python,Python,给出N个学生班级中每个学生的姓名和成绩, 将其存储在嵌套列表中,并打印任何学生的姓名 具有第二低等级的 注:如果有多个学生的成绩为第二低, 按字母顺序排列他们的名字,并将每个名字打印在新行上 范例 reords = [['chi', 20.0], ['bela', 50.0], ['alpha', 50.0]] 分数的有序列表是[20.0,50.0],因此第二低的分数 是50.0有两个学生的分数是:['beta','alpha']。 名称按字母顺序打印为: 输入格式: 第一行包含一个整数,N

给出N个学生班级中每个学生的姓名和成绩, 将其存储在嵌套列表中,并打印任何学生的姓名 具有第二低等级的

注:如果有多个学生的成绩为第二低, 按字母顺序排列他们的名字,并将每个名字打印在新行上

范例

 reords = [['chi', 20.0], ['bela', 50.0], ['alpha', 50.0]]
分数的有序列表是[20.0,50.0],因此第二低的分数 是50.0有两个学生的分数是:['beta','alpha']。 名称按字母顺序打印为:

输入格式:

第一行包含一个整数,N,学生人数。2N 后面的几行描述每个学生超过2行

  • 第一行包含一个学生的名字
  • 第二行是他们的成绩
输出格式

请打印出在本课程中成绩第二低的任何学生的姓名。 如果有多个学生,按字母顺序排列他们的名字,然后 在新的一行上打印每一个

输入示例:示例输入0

 5
 Harry
 37.21
 Berry
 37.21
 Tina
 37.2
 Akriti
 41
 Harsh
 39
样本输出0

 Berry
 Harry
这是我的建议代码:

if __name__ == '__main__':
    student = []
    values = []
    names =[]
    for _ in range(int(input())):
        name = input()
        score = float(input())
        student.append([name, score])

    for item in student:
        values.append(item[1])
    values.sort()

    for item in student:
        if item[1] == values[1]:
            names.append(item[0])
    names.sort()

    for name in names:
        print(name)
当我在jupiter笔记本上运行代码时,我有相同的简历。但是当我在测试编辑器中运行相同的代码时,我有一个错误。我不明白 算法是:

  • 将所有学生及其分数添加到列表
    reords
  • 带有唯一标记的排序列表(使用
    set
  • 筛选列表以获取具有第二个min标记的学生
  • 打印每个筛选学生的姓名
测试:


我敢肯定这里已经有人问过一个非常类似的问题,错误是有些输入代码无法处理。用屏幕截图中的完整输入测试它,看看会发生什么。我不知道,但我想对这个问题有更多的解释。请看这张图片,看看我想谈什么汉克的,彼得。让我看一下,然后再运行一次可能的抱歉,我有两个相同的错误你可以在这里测试你的代码:你能发布你的代码吗?请看一下?@AmounguiSerge,你可以在我的答案中看到:)不过,酷,你的代码工作正常。这是正确的。谢谢你的帮助。
if __name__ == '__main__':
    reords = []
    
    for _ in range(int(input())):
        name = input()
        score = float(input())
        reords.append([name, score])
 
    mark = sorted(set(map(lambda x: x[1], reords)))[1]
    for n, m in sorted(filter(lambda x: x[1] == mark, reords)):
        print(n)