Как отмечали другие, словари по своей сути неупорядочены. Однако, если проблема заключается в просто отображении словарей упорядоченным способом, вы можете переопределить метод __str__
в подклассе словаря и использовать этот словарь, а не встроенный dict
. Например,
class SortedDisplayDict(dict):
def __str__(self):
return "{" + ", ".join("%r: %r" % (key, self[key]) for key in sorted(self)) + "}"
>>> d = SortedDisplayDict({2:3, 1:89, 4:5, 3:0})
>>> d
{1: 89, 2: 3, 3: 0, 4: 5}
Обратите внимание, что это ничего не меняет о том, как хранятся ключи, порядок их возврата, когда вы перебираете их и т. Д., Только как они отображаются с print
или на консоль python.