упорядоченный словарь Python * - это то, что вы ищете. Например
>>> from collections import OrderedDict
>>> data = {4:'str1', 19:'str2', 1:'str3', 7:'str4'}
>>> orderedData = OrderedDict(sorted(data.items()))
>>> orderedData
OrderedDict([(1, 'str3'), (4, 'str1'), (7, 'str4'), (19, 'str2')])
Вы по-прежнему можете иметь дело с OrderedDict
так же, как и с обычным словарем, поэтому
>>> orderedData[1]
'str3'
>>> orderedData[11] = 'str5'
>>> orderedData
OrderedDict([(1, 'str3'), (4, 'str1'), (7, 'str4'), (19, 'str2'), (11, 'str5')])
Кроме того, это будет работать с любым ключом, ints
не требуется.