【发布时间】:2015-11-03 06:25:39
【问题描述】:
我有一个名为data的python字典,里面有子字典,比如
data = {'ind1' : {}, 'ind10' : {}, 'ind11' : {}, 'ind12' : {}, 'ind13', 'ind14' : {}, 'ind15' : {}, 'ind16' : {}, 'ind17' : {}, 'ind18' : {}, 'ind19' : {}, 'ind2' : {}, 'ind20' : {}, 'ind3' : {}, 'ind30' : : {}, 'ind31' : {} 'ind5' : {}, 'ind6' : {}, 'ind7' : {}, 'ind8' : {}, 'ind9' : {}}
我想将字典中的数据按键排序为
ind1
ind2 : {}
ind3 : {}
...
ind10 : {}
ind11 : {}
我尝试了收藏库中的data = collections.OrderedDict(sorted(data.items()))
这是给出的结果
ind1 : {}
ind11 : {}
ind12 : {}
ind13 : {}
.....
ind20 : {}
ind21 : {}
....
ind3 : {}
ind4 : {}
....
请帮忙
【问题讨论】:
-
你想先natural sort你的钥匙...
-
为什么要对字典进行按键排序?也许这实际上并不是您需要做的事情。
-
使用
OrderedDict可能是个坏主意,OrderedDicts 中的键按插入顺序排序,仅此而已。现在,如果您插入了ind1和ind3并且排序良好,则您不能插入ind2并期望它不再被正确排序。 -
谢谢,**natsort ** 做得最好,因为它也按字母顺序自然排序
标签: python python-2.7 sorting dictionary