Проверьте здесь: https://ide.geeksforgeeks.org/fMD7OgxYC7
Вместо определения списка. Сохраните это в словаре. Это даст вам оптимизированное пространство. Затем отсортируйте словарь по значению. добавить имена, имеющие оценку в словаре.
Попробуйте:
import collections
if __name__ == '__main__':
arr = {}
for _ in range(int(input())):
name = input()
score = float(input())
arr[name] = score
dd = collections.defaultdict(list)
for k,v in arr.items():
dd[v].append(k)
x = sorted(dd.items())
sec_low = sorted(x[1][1])
for i in sec_low:
print(i)
Ввод:
5
Harry
37.21
Berry
37.21
Tina
37.2
Akriti
41
Harsh
39
Выход:
Berry
Harry
x:
[(37.2, ['Tina']),
(37.21, ['Harry', 'Berry']),
(39.0, ['Harsh']),
(41.0, ['Akriti'])]