You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中对含Unicode键的字典按键排序(OrderedDict失效问题)

解决Unicode字典按键排序的问题

其实这锅真不怪Unicode~你遇到的问题本质是Python2里普通字典本身是无序的,直接把它转成OrderedDict只会保留原字典的遍历顺序,而不是按键排序。不用修改原字典的类型,只需要先对字典的键排序,再基于排序后的键构建OrderedDict就行,具体步骤如下:

具体实现代码

  1. 先导入OrderedDict:
from collections import OrderedDict
  1. 直接使用你拿到的原字典:
your_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'}
  1. 对字典的键进行排序:
sorted_keys = sorted(your_dict.keys())
  1. 基于排序后的键构建有序字典:
sorted_ordered_dict = OrderedDict((key, your_dict[key]) for key in sorted_keys)

验证结果

此时打印sorted_ordered_dict,就能得到你期望的顺序:

OrderedDict([(u'005-010', u'005-010_comp_v002'), (u'006-010', u'006-010_comp_v009'), (u'007-010', u'007-010_comp_v000'), (u'010-010', u'010-010_comp_v000'), (u'012-010', u'012-010_comp_v002')])

整个过程不需要修改原字典的类型,完全基于原字典的数据生成有序版本,完美符合你的需求~

内容的提问来源于stack exchange,提问作者Kevin Lemaire

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:04:59