zoukankan      html  css  js  c++  java
  • python中的容器序列类型collections

    collections中的内容:

    1、namedtuple():构造带字段名的元组

    具名元组的特有属性:

    类属性 _fields:包含这个类所有字段名的元组

    类方法 _make(iterable):接受一个可迭代对象来生产这个类的实例

    实例方法 _asdict():把具名元组以 collections.OrdereDict 的形式返回,可以利用它来把元组里的信息友好的展示出来

    实例方法_replace():修改对象属性

    一般用法:

    2、deque:双端队列,相当于可以在列表的尾部和头部进行插入和删除操作,比单纯的列表insert(0,val)效果要好

    append():尾部添加一个元素

    appendleft():头部添加一个元素

    pop():尾部弹出一个元素

    popleft():头部弹出一个元素

    3、ChanMap:将多个映射快速链接到一起,这样它们就可以作为一个单元处理。它通常比创建一个新字典和多次调用update()要快很多。

    对ChainMap中的元素进行操作都是对第一个映射中的元素进行操作。

    该容器用的不多。

    4、Counter:用于计数可哈希对象,像列表、字符串等等。

    5、OrderedDict

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

    一些与dict的不同仍然存在:

    • 常规的 dict被设计为非常擅长映射操作。 跟踪插入顺序是次要的。

    • OrderedDict 旨在擅长重新排序操作。 空间效率、迭代速度和更新操作的性能是次要的。

    • 算法上, OrderedDict可以比dict更好地处理频繁的重新排序操作。 这使其适用于跟踪最近的访问(例如在LRU Cache中)。

    • 对于OrderedDict ,相等操作检查匹配顺序。

    • OrderedDict 类的 popitem() 方法有不同的签名。它接受一个可选参数来指定弹出哪个元素。

    • OrderedDict 类有一个 move_to_end() 方法,可以有效地将元素移动到任一端。

    • Python 3.8之前,dict缺少__reversed__方法。

    一句话总结:OrderedDict与普通的dict不同,它会记录放入元素的顺序。

    5、defaultdict:存放入的数据类型会有默认值

    比如:t=defaultdict(int)

    字典中存放的键的数据类型为整型,其默认值为0。这个性质在遍历计数时很方便。

    6、UserDict、UserList、UserString:也就是你想定义自己的Dict、List、String,你就可以继承它们并重写其中的一些方法。不常用

  • 相关阅读:
    ACM的算法分类 2015-04-16 14:25 22人阅读 评论(0) 收藏
    初学Larevel 2014-08-21 11:24 90人阅读 评论(0) 收藏
    初学PHP&MySQL 2014-05-31 12:40 92人阅读 评论(0) 收藏
    codeforces 570 E. Pig and Palindromes (dp)
    codeforces 570 D. Tree Requests (dfs序)
    poj 2157 Maze (bfs)
    cf 570 C. Replacement (暴力)
    cf 570B B. Simple Game(构造)
    cf 570 A. Elections
    hdu 1429胜利大逃亡(续) (bfs+状态压缩)
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12411630.html
Copyright © 2011-2022 走看看