Возможно, вы ищете «естественную сортировку» (pip install natsort
):
from natsort import natsort
from collections import OrderedDict
lst = [('0', 12), ('1', 18), ('14', 26), ('18', 17), ('2', 11), ('24', 13)]
dct = OrderedDict()
for key, value in natsort.natsorted(lst):
dct[key] = value
print(dct)
Это дает
{'0': 12, '1': 18, '2': 11, '14': 26, '18': 17, '24': 13}
Начиная с Python 3.6
порядок запоминается.