百木园-与人分享,
就是让自己快乐。

1.7 字典排序

问题描述

你想创建一个字典,并且在迭代或序列化这个字典时能够控制元素的顺序。

解决方案

这里介绍一种新的容器:collections模块中的OrderedDict类。它的用法如下:

from collections import OrderedDict

d = OrderedDict()
d[\'a\'] = 1
d[\'b\'] = 2
d[\'c\'] = 3

讨论

有序词典就像常规词典一样,但有一些与排序操作相关的额外功能。由于内置的 dict 类获得了记住插入顺序的能力(在 Python 3.7 中保证了这种新行为),它们变得不那么重要了。

OrderedDict内部维护着一个根据键插入顺序排序的双向列表。每次当一个新的元素插入进来的时候,它会被放到链表的尾部。对于一个已经存在的键进行重复赋值不会改变键的顺序。也正因如此,一个OrderedDict的大小时普通字典的两倍,所以如果需要构建一个需要大量OrderedDict实例的数据结构时,要权衡其带来的好处是否大过内存的额外消耗。

关于OrderedDict更详细的介绍和用法,参见官方文档。

来源:https://www.cnblogs.com/L999C/p/15707631.html
图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » 1.7 字典排序

相关推荐

  • 暂无文章