УпорядоченныйDict запоминает заказ, который вы добавили в словарь, а не порядок сортировки.
Но вы можете легко создать отсортированный список из обычного словаря. Например:
>>> list1={106:0.33,107:0.21,98:0.56}
>>> sorted(list1.items())
[(98, 0.56), (106, 0.33), (107, 0.21)]
Или, если вы хотите его в OrderedDict, просто применить OrderedDict после сортировки:
>>> from collections import OrderedDict
>>>
>>> list1={106:0.33,107:0.21,98:0.56}
>>> OrderedDict(sorted(list1.items()))
OrderedDict([(98, 0.56), (106, 0.33), (107, 0.21)])
Но обычный Словаре не имеет ни малейшего понятия о порядке сортировки, так что вы не можете Сортировка самого словаря.
Однако, если вы действительно хотите, что дисплей, вы можете создать свой собственный класс:
>>> from collections import OrderedDict
>>> class MyDict(OrderedDict):
... def __repr__(self):
... return '{%s}' % ', '.join(str(x) for x in self.items())
...
>>> list1={106:0.33,107:0.21,98:0.56}
>>> MyDict(sorted(list1.items()))
{(98, 0.56), (106, 0.33), (107, 0.21)}
Я хочу выход быть {98: 0,56, 106: 0,33, 107: 0,21}. Как мне это получить? –
@Explore_SDN - добавлен пользовательский класс, пример –
имеет смысл! :) Спасибо. –