Python collections.OrderedDict()
一、问题
创建有序字典。
二、解决方案
collections.OrderedDict()
标准的字典是无序的。而collections.OrderedDict()
是一种特殊字典,能够按照键的插入顺序保留键值对在字典的次序。
from collections import OrderedDict
d = OrderedDict()
d['foo'] = 1
d['bar'] = 2
d['spam'] = 3
d['grok'] = 4
print(d)
for key, value in d.items():
print(key, value)
OrderedDict([('foo', 1), ('bar', 2), ('spam', 3), ('grok', 4)])
foo 1
bar 2
spam 3
grok 4
控制 JSON 编码后字段的顺序。
import json
print(json.dumps(d))
{"foo": 1, "bar": 2, "spam": 3, "grok": 4}
三、讨论
OrderedDict()
内部是一个根据键的插入顺序排序的双向链表。当新元素插入,被放到链表尾部。对存在的键重复赋值不会改变键的顺序。
一个OrderedDict
的大小是一个普通字典的两倍。所以当数据量大时(比如100000行 csv 数据放到 orderedDict 中),需要考虑内存的消耗。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2019-03-03 正规方程