У меня есть следующий словарь:
'{0: 0, 1: 11, 2: 26, 3: 43, 4: 14, 5: 29, 6: 34, 7: 49, 8: 49, 9: 108, 10: 124, 11: 108, 12: 361, 13: 290, 14: 2118, 15: 5408, 16: 43473, 17: 109462, 18: 111490, 19: 244675, 20: 115878, 21: 6960}'
И для этого словаря я хочу написать функцию, которая возвращает три пары ключ-значение, которые имеют самые высокие значения (поэтому в этомcase case 18, 19, 20).
Я придумал следующее:
cachedict = nr_of_objects_per_century() #Dictionary mentioned above
def top_3_centuries():
max_nr_works_list = sorted(cachedict.values())
top_3_values = []
for i in range(len(max_nr_works_list)-3, len(max_nr_works_list)):
top_3_values.append(max_nr_works_list[i])
print(top_3_values)
Это дает мне список максимальных значений, которые я хочу найти.Но как мне продолжить отсюда?Есть ли способ сделать это без обратного просмотра (что медленно для словарей, верно?) У меня есть ощущение, что я могу выполнить эту задачу гораздо более эффективно / питонически.