如何在Python中按数字顺序按键对字符串字典进行排序

时间:2019-05-27 02:22:26

标签: python

这与post不同,因为相同的方法无效。

这是该帖子的代码。

from collections import OrderedDict

d = {'57481': 50, '57480': 89, '57483': 110, '57482': 18, '57485': 82, '57484': 40}
OrderedDict(sorted(d.items(), key=lambda t: t[0]))

项目按预期的数字顺序排列。

就我而言,这不起作用

d = {'0': 'index-0',
 '1': 'index-1',
 '13': 'index-13',
 '2': 'index-2',
 '20': 'index-20',
 '21': 'index-21',
 '22': 'index-22',
 '23': 'index-23',
 '3': 'index-3'}
OrderedDict(sorted(d.items(), key=lambda t: t[0]))

结果应该是:

{'0': 'index-0',
 '1': 'index-1',
 '2': 'index-2',
 '3': 'index-3'
 '13': 'index-13',
 '20': 'index-20',
 '21': 'index-21',
 '22': 'index-22',
 '23': 'index-23',}

我想念什么?

1 个答案:

答案 0 :(得分:2)

您正在对字符串进行排序,并且字符串"13""2"之前(请考虑电话簿条目)。

尝试一下:

key=lambda t: int(t[0])