• 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,你就可以继承它们并重写其中的一些方法。不常用

  • 相关阅读:
    Lua 数组
    javascript debugger
    Lua 字符串
    警告
    Lua中获取table长度
    Lua 运算符
    Lua 函数
    lua if 流程控制
    pairs 和 ipairs 的区别
    Lua 循环
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12411630.html
Copyright © 2020-2023  润新知