if __name__ == '__main__':
arr = []
for _ in range(int(input())):
name = input()
arr.append(name)
score = float(input())
arr.append(score)
array = [arr[i:i+2] for i in range(0, len(arr), 2)]
marks = []
for j in range(0, len(array)):
marks.append(array[j][1])
marks = list(map(float, marks))
marks.sort()
seclow = marks[1]
for k in range(0, len(array)):
if (seclow == float(array[k][1])):
print(array[k][0])
**SAMPLE INPUT:**
5
Harry
37.21
Berry
37.21
Tina
37.2
Akriti
41
Harsh
39
**EXPECTED OUTPUT:**
BERRY
HARRY
**MY OUTPUT:**
HARRY
BERRY
唯一的问题是按字母顺序排列得分最低的名字。我应该使用列表来通过测试用例。那么,应该对代码做哪些更改
不使用任何导入和更少的代码,可以这样做。 我还把它放进了一个函数中,只是为了让它更干净一点,所以如果需要的话,你可以在其他地方重用它
通过此处检查:https://ide.geeksforgeeks.org/fMD7OgxYC7
而不是定义列表。把它存到字典里。这将为您提供空间优化的解决方案。然后按值对字典排序。在字典中添加有分数的名称
试试看:
输入:
输出:
x:
处理重复最低和重复第二最低
样本输入:{“hri”:6.2,“dav”:1.1,“asv”:1.1,“wrs”:12.3,“dup”:6.2,“awe”:43.2,“asw”:22.2,“asd”:6.2}
输出:['asd'、'dup'、'hri']可以打印到“\n”
相关问题 更多 >
编程相关推荐