美文网首页
python 中字典的变种

python 中字典的变种

作者: 第八共同体 | 来源:发表于2017-07-13 11:22 被阅读0次

1.collections.Counter

这个映射类型会给键准备一个整数计数器。每次更新一个键的时候都会增加这个计数器。所以这个类型可以用来给可散列表对象计数,或者是当成多重集来用——多重集合就是集合里的元素可以出现不止一次。Counter 实现了 + 和 - 运算符用来合并记录,还有像 most_common([n]) 这类很有用的方法。most_common([n]) 会按照次序返回映射里最常见的 n 个键和它们的计数。

import collections
ct = collections.Counter(['zhao','zhao','linpeng','peng','peng','peng'])
print ct   #output:Counter({'peng': 3, 'zhao': 2, 'linpeng': 1})
print ct.most_common(2)   # output: [('peng', 3), ('zhao', 2)]

2.collections.OrderedDict

这个类型在添加键的时候会保持顺序,因此键的迭代次序总是一致的。OrderedDict 的 popitem 方法默认删除并返回的是字典里的最后一个元素,但是如果像 my_odict.popitem(last=False) 这样调用它,那么它删除并返回第一个被添加进去的元素。

3.collections.ChainMap

该类型可以容纳数个不同的映射对象,然后在进行键查找操作的时候,这些对象会被当作一个整体被逐个查找,直到键被找到为止。这个功能在给有嵌套作用域的语言做解释器的时候很有用,可以用一个映射对象来代表一个作用域的上下文。

4.colllections.UserDict

这个类其实就是把标准 dict 用纯 Python 又实现了一遍。跟 OrderedDict、ChainMap 和 Counter 这些开箱即用的类型不同,UserDict 是让用户继承写子类的。更倾向于从 UserDict 而不是从 dict 继承的主要原因是,后者有时会在某些方法的实现上走一些捷径,导致我们不得不在它的子类中重写这些方法,但是 UserDict 就不会带来这些问题.
  UserDict 并不是 dict 的子类,但是 UserDict 有一个叫作 data 的属性,是 dict 的实例,这个属性实际上是 UserDict 最终存储数据的地方。

5.最后介绍一种不可变映射对象,type 模块中的MappingProxyType

  types 模块中引入了一个封装类名叫 MappingProxyType。如果给这个类一个映射,它会返回一个只读的映射视图。虽然是个只读视图,但是它是动态的。这意味着如果对原映射做出了改动,我们通过这个视图可以观察到,但是无法通过这个视图对原映射做出修改。

image.png

相关文章

  • python 中字典的变种

    1.collections.Counter 这个映射类型会给键准备一个整数计数器。每次更新一个键的时候都会增加这个...

  • 2018-11-01 032 字典进阶 B

    今天继续说字典。 变种字典 在collections模块中,除了defaultdict之外,还有很多种不同的映射类...

  • Python笔记setdefault用法

    Python字典中setdefault的用法: Python 字典 setdefault() 方法和get()方法...

  • 有序字典

    python中的字典 python中默认的字典是无序的,试下下面的代码 collections.OrderedDi...

  • 字典

    字典 关键代码: 字典变种: OrderedDict保持添加顺序 ChainMap 多个map依次链接,越靠前优先...

  • Python中的字典

    Python中的字典就是JavaScript中的对象创建字典 访问字典中的值 使用len()方法获取字典中键值对的...

  • 第六章 字典

    6.2 使用字典 在Python中,字典是一系列键值对,任何Python对象都可用作字典的值Pyhone字典用花括...

  • 12.2-字典概念

    字典在Python中的地位排在第一,非常非常重要;Python中许多数据结构、计算机编程 都是基于字典; 1.字典...

  • 每日一课 | 你知道和不知道python字典都在这!!

    【导语】:你是否了解Python字典,以及创建Python字典都有哪些的实际的应用操作,还有如何访问字典中的值等等...

  • 字典的创建及操作方法

    1、字典的特点 字典:是python中的无序的对象集合。字典与列表的区别是:字典中的数据是无序的,而且字典中的元素...

网友评论

      本文标题:python 中字典的变种

      本文链接:https://www.haomeiwen.com/subject/ghrwhxtx.html