Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.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 如何将浮动作为列表中的元素对嵌套列表进行排序?_Python_List_Sorting_Python 3.6_Nested Lists - Fatal编程技术网

Python 如何将浮动作为列表中的元素对嵌套列表进行排序?

Python 如何将浮动作为列表中的元素对嵌套列表进行排序?,python,list,sorting,python-3.6,nested-lists,Python,List,Sorting,Python 3.6,Nested Lists,因此,目前我正在学习如何在HackerRank上编写代码,其中一个问题是返回成绩第二低的学生的姓名。它是一个嵌套列表,名称(类型字符串)和分数(浮动)作为子列表的一部分。例如: students = [ ['Harry', 37.21], ['Berry', 37.21], ['Tina', 37.2], ['Akriti', 41], ['Harsh', 39] ] 根据上面的列表,正确答案将返回“Harry”和“Berry”。编译器中给出的代码是 如果uuuu name

因此,目前我正在学习如何在HackerRank上编写代码,其中一个问题是返回成绩第二低的学生的姓名。它是一个嵌套列表,名称(类型字符串)和分数(浮动)作为子列表的一部分。例如:

students = [
  ['Harry', 37.21],
  ['Berry', 37.21],
  ['Tina', 37.2],
  ['Akriti', 41],
  ['Harsh', 39]
]
根据上面的列表,正确答案将返回“Harry”和“Berry”。编译器中给出的代码是

如果uuuu name_uuuu=='\uuuuuuu main\uuuuuu':
对于范围内的(int(input()):
名称=输入()
分数=浮动(输入()`
我在给出的代码之后添加的代码是
students=[]
(在
之后,如果{uuuuu name}uuuuuuu=''uuuu main}:
students.append([name,score])
在for循环中。最后,我试图让它打印的学生与第二最低的成绩,但并不真的知道如何去做。有什么建议吗?(我尝试了许多带有排序函数的代码行,但总是出现某种错误,例如,
您可以使用带有
键的
sort()
函数,该键告诉它使用内部每个列表的第二个元素进行排序

students = [['Harry', 37.21], ['Berry', 37.21], ['Tina', 37.2], ['Akriti', 41], ['Harsh', 39]]
students.sort(key = lambda x : x[1])

# students = [['Tina', 37.2], ['Harry', 37.21], ['Berry', 37.21], ['Harsh', 39], ['Akriti', 41]]
print(students[1])
输出:

['Harry', 37.21]

一种更好、更有效的方法是在值进入堆时将其推入堆中,然后在取出值时,它们已按排序顺序排列。如果您很聪明,您将使用此事实在该问题中只排序一次,并提前完成该问题

从heapq导入heappush
学生_分数=[]
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
对于范围内的(int(input()):
名称=输入()
分数=浮动(输入()
heappush(学生分数,(分数,姓名))
['Harry', 37.21]