我有以下词典:
<type 'dict'>
{u'010-010': u'010-010_comp_v000', u'012-010': u'012-010_comp_v002', u'007-010': u'007-010_comp_v000', u'006-010': u'006-010_comp_v009', u'005-010': u'005-010_comp_v002'}
我想按键订购。但是使用Collections和OrderedDict,我无法让它工作。
OrderedDict([(u'010-010', u'010-010_comp_v000'), (u'012-010', u'012-010_comp_v002'), (u'007-010', u'007-010_comp_v000'), (u'006-010', u'006-010_comp_v009'), (u'005-010', u'005-010_comp_v002')])
我认为它与unicode相关联?是否有解决方案来纠正这个问题而不必重写字典?它是另一种柔软的输出,所以我不能轻易改变它的类型。
所需的输出是:'005-010'... '006-010'... '007-010'...
OrderDict
s保留插入订单 - 他们不会为您排序项目。您需要自己对它们进行排序:
d = {u'010-010': u'010-010_comp_v000', u'012-010': u'012-010_comp_v002', u'007-010': u'007-010_comp_v000', u'006-010': u'006-010_comp_v009', u'005-010': u'005-010_comp_v002'}
o = OrderedDict((k, v) for k, v in sorted(d.items()))
print(o)