Python 有没有办法按键对字典的输出进行排序,其中数字是键?

Python 有没有办法按键对字典的输出进行排序,其中数字是键?,python,sorting,python-3.7,Python,Sorting,Python 3.7,我希望对键为数字的字典的输出进行排序,但我一直遇到这样一个问题:当我使用OrderedDict from collections或sorted()命令时,它会按如下方式对值进行排序。输出如下所示: [('0', 12), ('1', 18), ('14', 26), ('18', 17), ('2', 11), ('24', 13)...] 有没有办法让按键按正确的数字顺序排序 谢谢您可能正在寻找“自然排序”(pip-install-natsort): 这就产生了 {'0': 12, '1':

我希望对键为数字的字典的输出进行排序,但我一直遇到这样一个问题:当我使用OrderedDict from collections或sorted()命令时,它会按如下方式对值进行排序。输出如下所示:

[('0', 12), ('1', 18), ('14', 26), ('18', 17), ('2', 11), ('24', 13)...]
有没有办法让按键按正确的数字顺序排序


谢谢

您可能正在寻找“自然排序”(
pip-install-natsort
):

这就产生了

{'0': 12, '1': 18, '2': 11, '14': 26, '18': 17, '24': 13}

Python 3.6开始,顺序被记住。

您的键是字符串而不是数字,输出看起来不像字典。这是我应用排序命令后的输出字符串就是这样排序的,使用数字作为键而不是标题如果您只想按字符串的数值排序,请使用
排序(dict.items(),key=lambda it:int(it[0])
natsort
不是标准Python发行版的一部分。@MarkRansom:
pandas
numpy
tensorflow
,等等。两者都不是-如果外部库提供了额外的帮助,为什么不呢?是的,但它们更为人所知。如果你想推荐一个没有人安装过的软件包,最好包含一个指向查找它的位置的链接。@Markransem:将它添加到了答案中。噢,保持插入顺序的标准dict属性是最近出现的现象,我忘了是哪个Python版本引入了它;也许3.6?
{'0': 12, '1': 18, '2': 11, '14': 26, '18': 17, '24': 13}