Вы не можете заказать dict как таковой, но вы можете преобразовать его в список кортежей (ключ, значение), и вы можете отсортировать его.
Для этого вы используете метод .items (). Например,
>>> {'a': 1, 'b': 2}
{'a': 1, 'b': 2}
>>> {'a': 1, 'b': 2}.items()
[('a', 1), ('b', 2)]
Самый эффективный способ сортировки - использование ключевой функции. Использование cmp менее эффективно, потому что его нужно вызывать для каждой пары элементов, тогда как при использовании ключа его нужно вызывать только один раз для каждого элемента. Просто укажите вызываемый элемент, который преобразует элемент в соответствии с тем, как он должен быть отсортирован:
sorted(somedict.items(), key=lambda x: {'carrot': 2, 'banana': 1, 'apple':3}[x[0]])
Вышеприведенный код определяет dict, который определяет пользовательский порядок ключей, которые вы хотите, и лямбда-выражение возвращает это значение для каждого ключа в старом dict.