У меня есть innested словарь, напримерheapq nsmallest ключ словаря отсортирован
>>> d={
'out_key': {'aa1':2, 'aa2':3, 'a1':5, 'aa0':2, 'b':1}
}
С этого Dict Я хочу первые n
ключи с наименьшим значением. Для того, чтобы сделать это, я знаю, что могу использовать heap.nsmallest
таким образом:
>>> import heapq
>>> smallest_2 = heapq.nsmallest(2,d['out_key'],key=d['out_key'].get)
>>> smallest_2
['b', 'aa1']
Однако в key
я хотел бы добавить еще одно условие, а именно иметь ключи отсортирован. Так что smallest_2=['b', 'aa0]
. (Примечание smallest_2
не требуется для сортировки.)
Моей первой (неудачной) попытки была установить key=f
где
f = lambda x: sorted(x['out_key].get)
Любое предложение?
Правильно, мне не хватало этого важного момента - Спасибо! – rafforaffo
@rafforaffo Рад, что я был полезен! :-). Просто FYI, лучшим способом было бы использовать как значение, так и ключ в аргументе 'key', как обновлено выше (будет быстрее, чем сортировка ключей). –
лучше ли это с точки зрения времени, т. Е. Избегая вычисления 'sorted()' s? – rafforaffo