python - 对第二低分数的嵌套列表进行排序
问题描述
给定物理课学生中每个学生的姓名和成绩,将它们存储在嵌套列表中,并打印成绩第二低的任何学生的姓名。注意:如果有多个学生的年级相同,请按字母顺序排列他们的姓名,并将每个姓名打印在新行上。
输入:
5
Harry
37.21
Berry
37.21
Tina
37.2
Akriti
41
Harsh
39
输出:
>>Berry
>>Harry
我做了这个
if __name__ == '__main__':
l2=[]
l1=[]
for i in range(int(input())):
name = input()
l1.append(name)
score = float(input())
l1.append(score)
l2.append(l1)
print(l2)
但它输出:
>>[['Harry', 37.21], ['Berry', 37.21], ['Tina', 37.2], ['Akriti', 41], ['Harsh', 39]]
解决方案
要回答您的问题,您可以将嵌套列表的输入作为
n=int(input())
arr=[[input(),float(input())] for _ in range(0,n)]
我相信这是一个黑客等级问题这是解决方案
n=int(input())
arr=[[input(),float(input())] for _ in range(0,n)]
arr.sort(key=lambda x: (x[1],x[0]))
names = [i[0] for i in arr]
marks = [i[1] for i in arr]
min_val=min(marks)
while marks[0]==min_val:
marks.remove(marks[0])
names.remove(names[0])
for x in range(0,len(marks)):
if marks[x]==min(marks):
print(names[x])
推荐阅读
- batch-file - MSDOS 6.22 How to get batch directory?
- laravel - 使用 VerifyEmail 特征更新用户电子邮件地址
- ios - 如何在 UIBezierPath iOS 中添加渐变
- laravel - When I register any user but remember_token() Always Null In Db During Insertion
- rest - HERE Maps: Realtime coverage for public transit API
- c - 按关键字关闭窗口
- .net - How do I get a partial view to pass related objects to post method in .NET MVC?
- javascript - Replacing style attribute of a html element bu class
- angular - SignalR Asp.netcore and angular ( WebSocket is not in the OPEN state) disconnection for signalR.HttpTransportType.WebSockets
- ruby - Karafka start_from_beginning not working as expected