gpt4 book ai didi

python - 如何对以 float 作为列表中的元素的嵌套列表进行排序?

转载 作者:行者123 更新时间:2023-12-01 02:28:34 29 4
gpt4 key购买 nike

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

students = [
['Harry', 37.21],
['Berry', 37.21],
['Tina', 37.2],
['Akriti', 41],
['Harsh', 39]
]

根据上面的列表,正确答案将返回“Harry”和“Berry”。编译器中给出的代码是

if __name__ == '__main__':
for _ in range(int(input())):
name = input()
score = float(input())`

我在给出的代码之后添加的代码是 students = [] (if __name__ == '__main__': 之后)students.append([name, score])在 for 循环内。最后,我试图让它打印成绩第二低的学生,但不太确定如何去做。有什么建议么? (我已经尝试了很多行带有排序函数的代码,但总是出现某种错误,例如 <floatstr 实例之间不支持 float 对象不可迭代或无法转换字符串 float ,反之亦然。,抱歉,因为我尝试了很多不同的代码行,所以我不记得哪个代码抛出了哪个错误)首先,抱歉这个问题已经被问到,我查找了几个与我的问题类似的不同问题我在问,但仍然找不到真正的答案。其次,抱歉,如果我看起来像是在咆哮或提示,但我已经被这个问题困扰了一段时间,而且它变得令人沮丧,因为如果我被困在几行代码中,如果我看到程序值得代码。第三,感谢您的帮助。

最佳答案

您可以将 sort() 函数与 key 一起使用,该函数告诉它使用内部每个列表的第二个元素进行排序。

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]

关于python - 如何对以 float 作为列表中的元素的嵌套列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47090088/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com