zoukankan      html  css  js  c++  java
  • 【collections】集合模块

    标准库 collections 是 python 内建的一个集合模块,里面封装了许多集合类。

    概述

    collections模块包含了除list、dict、和tuple之外的容器数据类型,如counter、defaultdict、deque、namedtuple、orderdict等。

    这个模块实现了特定目标的容器,以提供Python标准内建容器 dict , list , set , 和 tuple 的替代选择。参考python3.8.1文档

    类/对象 说明
    namedtuple() 创建命名元组子类的工厂函数
    deque 类似列表(list)的容器,实现了在两端快速添加(append)和弹出(pop)
    ChainMap 类似字典(dict)的容器类,将多个映射集合到一个视图里面
    Counter 字典的子类,提供了可哈希对象的计数功能
    OrderedDict 字典的子类,保存了他们被添加的顺序
    defaultdict 字典的子类,提供了一个工厂函数,为字典查询提供一个默认值
    UserDict 封装了字典对象,简化了字典子类化
    UserList 封装了列表对象,简化了列表子类化
    UserString 封装了列表对象,简化了字符串子类化

    deque

    collections 中队列相关的集合只有一个:deque。

    deque 是双边队列(double-ended queue),具有队列和栈的性质,在 list 的基础上增加了移动、旋转和增删等。deque是通过extend方法初始化集合元素的。

    deque(maxlen=N)创建一个固定长度的队列。当有新纪录加入而队列已满时会自动移除最老的那条记录。

    d = collections.deque([]) 说明
    d.append('a') 在最边添加一个元素,此时 d=deque('a')
    d.appendleft('b') 在最边添加一个元素,此时 d=deque(['b', 'a'])
    d.extend(['c','d']) 在最边添加所有元素,此时 d=deque(['b', 'a', 'c', 'd'])
    d.extendleft(['e','f']) 在最边添加所有元素,此时 d=deque(['f', 'e', 'b', 'a', 'c', 'd'])
    d.pop() 将最边的元素取出,返回 'd',此时 d=deque(['f', 'e', 'b', 'a', 'c'])
    d.popleft() 将最边的元素取出,返回 'f',此时 d=deque(['e', 'b', 'a', 'c'])
    d.rotate(-2) 向左旋转两个位置(正数则向右旋转),此时 d=deque(['a', 'c', 'e', 'b'])
    d.count('a') 队列中'a'的个数,返回 1
    d.remove('c') 从队列中将'c'删除,此时 d=deque(['a', 'e', 'b'])
    d.reverse() 将队列倒序,此时 d=deque(['b', 'e', 'a'])

    deque是线程安全的,也就是说你可以同时从deque集合的左边和右边进行操作而不会有影响。

  • 相关阅读:
    浪潮之巅阅读笔记
    人月神话阅读笔记3
    学习报告
    人月神话阅读笔记2
    学习报告
    第十一周学习总结
    软件杯项目——手写体识别
    第十周学习进度
    第九周学习进度
    《软件架构师的12项修炼》阅读笔记
  • 原文地址:https://www.cnblogs.com/ytxwzqin/p/12300344.html
Copyright © 2011-2022 走看看