在python中,如何使用unicode内容订购dict?

问题描述 投票:2回答:1

我有以下词典:

<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'...

python dictionary python-unicode ordereddictionary
1个回答
3
投票

OrderDicts保留插入订单 - 他们不会为您排序项目。您需要自己对它们进行排序:

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)
© www.soinside.com 2019 - 2024. All rights reserved.