【发布时间】:2020-03-22 21:54:18
【问题描述】:
n = int(input())
a_name = []
a_score = []
for _ in range(n):
name = input()
score = float(input())
a_name.append(name)
a_score.append(score)
a_score1 = set(a_score)
a_score1.remove(min(a_score1))
x = min(a_score1)
for i in range(n):
if a_score[i]==x:
print(a_name[i])
对于以下代码输入是:
5
哈利
37.21
浆果
37.21
蒂娜
37.2
阿克里提
41
苛刻
39
我的输出:
哈利
浆果
预期输出:
浆果
哈利
我是编程界的新手,希望能帮我解决这个问题。 这是一个黑客等级问题,问题是找到具有第二个最低分数的名称。我能够通过 8/10 测试用例,但有 2 个测试用例在此解决方案中失败。我能够找到正确的名称(即得分第二低的名称),但是它的打印顺序错误)
【问题讨论】:
-
嗨,Saloni,欢迎来到 SO!将元组转换为集合是否有特殊原因?
-
欢迎来到 Stack Overflow!查看tour 和How to Ask。请edit你的问题有一个描述性的标题。现在问题来了,预期的顺序是什么?你已经按照出现的顺序排列了它们,这显然是错误的。他们应该被排序吗?
-
您好 Joseph,我仍在努力学习 Python。我试图找到第二个最小值并想删除第一个最小值。这是我的做法。如果有什么不必要的,请随时纠正
-
@wjandrea 我将编辑标题。嗯,问题没有说明是否需要排序。问题是找到第二个最低分数并打印第二个最低分数的人的名字。我成功地找到了正确的名称,但黑客等级解决方案的名称顺序与我打印的名称顺序不同。
-
您使用两个列表而不是字典是否有特殊原因?
标签: python-3.x list for-loop output