collections OrderedDict
来源:互联网 发布:线上展厅制作软件 编辑:程序博客网 时间:2024/06/06 03:38
排序字典像正常的字典一样,但是他们能记住元素被插入时的顺序。当迭代一个排序字符时,元素会按顺序返回以他们第一次被加入时的位置
class collections.OrderedDict([items]
返回一个字典子类的实例,支持普字典的方法。排序字典就是一个能记住key第一次被插入时的顺序。如果一个新的入口重写了一个以经存在的入口,原始的插入位置是不会改变的。如果删除一个入口在重新插入,他们移动到最后面
OrderedDict.popitem(last=True)
popitem()对于排序字典来说返回并且删除一个元素
除了通常的映射方法,排序字典支持使用reversed()反转迭代
排序字典之间的相等测试是对位置敏感的,以**list(od1.items()) == list(od2.items())
这种方式实现,排序字典和普通映射之间的相等测试是对位置不敏感的像正规的字典一样,这允许使用排序字典替换正常字典的任何地主
排序字典的例子和食谱
因为排序字典能够记住元素插入时的位置。所以他可以与排序结合使用来制造一个排过序的字典
>>> # regular unsorted dictionary>>> d = {'banana': 3, 'apple': 4, 'pear': 1, 'orange': 2}>>> # dictionary sorted by key>>> OrderedDict(sorted(d.items(), key=lambda t: t[0]))OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])>>> # dictionary sorted by value>>> OrderedDict(sorted(d.items(), key=lambda t: t[1]))OrderedDict([('pear', 1), ('orange', 2), ('banana', 3), ('apple', 4)])>>> # dictionary sorted by length of the key string>>> OrderedDict(sorted(d.items(), key=lambda t: len(t[0])))OrderedDict([('pear', 1), ('apple', 4), ('orange', 2), ('banana', 3)])
一个新的排过序的字典维持他们的排序位置当入口被删除时,但是当一个新的key被添加时,新的key会被追回在最后面,排序不会维持
还有一种更直接的方式创建一个排序字典(参记住key最后插入的位置)的另一种版本。如果一个新的入口覆盖了一个已经存在的入口,原始插入的位置会被改变并且移动到最后:
class LastUpdatedOrderedDict(OrderedDict): 'Store items in the order the keys were last added' def __setitem__(self, key, value): if key in self: del self[key] OrderedDict.__setitem__(self, key, value)
排序字典可以与Counter类结合,这个counter可以记住元素第一次访问时的位置
class OrderedCounter(Counter, OrderedDict): 'Counter that remembers the order elements are first encountered' def __repr__(self): return '%s(%r)' % (self.__class__.__name__, OrderedDict(self)) def __reduce__(self): return self.__class__, (OrderedDict(self),)
0 0
- collections OrderedDict
- Python collections OrderedDict
- collections中的OrderedDict
- hackerrank Collections.OrderedDict()
- python 2-6 如何让字典保持有序collections.OrderedDict
- Python HackerRank|Word Order(OrderedCounter)(from collections import Counter, OrderedDict)
- python中排序,函数sort、sorted、argsort,collections.OrderedDict类
- Python的collections模块中的OrderedDict有序字典
- Python文件操作,时间日期操作,collections增强,Deque(类似java的LinkedList),OrderedDict,Counter
- python OrderedDict
- Python OrderedDict
- Python字典排序OrderedDict
- ordereddict can't import
- 5.3.6 OrderedDict对象
- python 有序字典OrderedDict
- python OrderedDict用法
- dict初始化、OrderedDict使用
- Collections
- 判断机器是否开机
- Java的反射机制
- Numpy 创建数组
- postgres数据导入导出
- 15款最好用的思维导图(心智图 )工具
- collections OrderedDict
- SQL Server 同期数据到Postgres
- 如何快速查看电脑硬盘序列号?
- Android中的主题与样式中的各个部件
- hdu2553(详解)N皇后问题
- The JSP specification requires that an attribute name is preceded by whitespace
- 判断手机能不能adb连接
- nginx基本设置
- UVA