Я бы попытался использовать другой макет структуры данных, если бы я был вами, мне не нравится использовать так много []
срезов для доступа к элементам в словаре. Отличная функция sorted
:
a_list = [{'name': 'item1', 'value': 4},
{'name': 'item2', 'value': 2},
{'name': 'item3', 'value': 8},
{'name': 'item4', 'value': 1},
{'name': 'item5', 'value': 20},
{'name': 'item6', 'value': 3},
{'name': 'item7', 'value': 2},
{'name': 'item8', 'value': 40},
{'name': 'item9', 'value': 7}]
a_list_sorted = sorted(a_list, key=lambda x: x['value'])
print(a_list_sorted)
Вывод:
[{'name': 'item4', 'value': 1}, {'name': 'item2', 'value': 2}, {'name': 'item7', 'value': 2}, {'name': 'item6', 'value': 3}, {'name': 'item1', 'value': 4}, {'name': 'item9', 'value': 7}, {'name': 'item3', 'value': 8}, {'name': 'item5', 'value': 20}, {'name': 'item8', 'value': 40}]
Или ваш макет:
# your dictionary
a = {1 : ['item1', 4],
2 : ['item2', 2],
3 : ['item3', 8],
4 : ['item4', 1],
5 : ['item5', 20],
6 : ['item6', 3],
7 : ['item7', 2]}
# convert to a dict like: {'': 4, '': }
a_dict = {value[0]: value[1] for value in a.values()}
a_dict_sorted = dict(sorted(a_dict.items(), key=lambda x: x[0]))
print(a_dict_sorted)
Вывод:
{'item4': 1, 'item2': 2, 'item7': 2, 'item6': 3, 'item1': 4, 'item3': 8, 'item5': 20}