Словари до Python 3.7 не сортируются, однако вы можете отсортировать список кортежей из dict.items
, и если вы используете Python 3.7, создайте dict
из результата. Ключ сортировки lambda
возвращает список с двумя элементами. Первый элемент является результатом сравнения ключа, в данном случае, x == 'c'
, тогда как второй элемент является числовым значением, связанным с ключом:
d = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
x = 'c'
new_d = sorted(d.items(), key=lambda c:[c[0] != x, c[-1]])
Выход:
[('c', 3), ('a', 1), ('b', 2), ('d', 4)]
В Python 3.7:
print(dict(new_d))
Выход:
{'c': 3, 'a': 1, 'b': 2, 'd': 4}