您很幸运:该natsort
模块可以提供帮助。首先,使用以下命令安装它:
pip install natsort
现在,您可以d.keys()
转到natsort.natsorted
并构建一个新的OrderedDict
。
import natsort
from collections import OrderedDict
d = {'a1' : 123,
'a2' : 2,
'a10': 333,
'a11': 4456}
keys = natsort.natsorted(d.keys())
d_new = OrderedDict((k, d[k]) for k in keys)
简短的版本涉及排序d.items()
( 从RomanPerekhrest的答案 得到了这个想法 ):
d_new = OrderedDict(natsort.natsorted(d.items()))
d_new
OrderedDict([('a1', 123), ('a2', 2), ('a10', 333), ('a11', 4456)])