擅长:python、mysql、java
<p>你错了<code>temp = sorted(builtlist, key = lambda x: x[1])</code>
,<code>heapq.nsmallest(2,temp)</code>返回temp中最小的n个元素,在您的例子中它将是<code>[50,50,50,51]</code>,因此它将返回<code>[50, 50]</code>
使用<code>temp = list(set(temp))</code>你的代码就可以工作了。在</p>
<p>如果您不想使用heapq,您可以使用此代码来获得相同的答案。在</p>
<pre><code># range(int(input())):
n = int(input())
builtlist = []
temp= []
names = []
for i in range(0, n):
name = input()
score = float(input())
builtlist.append([name, score])
temp = list(set([x[1] for x in builtlist]))
secondsmall = sorted(temp)[1]
for j in range(len(builtlist)):
if (builtlist[j][1]==secondsmall):
names.append(builtlist[j][0])
list_print = sorted(names)
print(*list_print, sep = "\n")
</code></pre>