Python中的collections模块详解

其他关于Python的总结文章请访问: https://www.jianshu.com/nb/47435944 collections 模块给出了python中一些功能更加强大的数据结构、集合类 顾名思义, namedtuple 就是有了名字的 tuple ,声明一个 namedtuple 类的时候可以传入两个参数,第一个是这个 tuple 的名字,第二个是一个 str 的 list ...
Python中的collections模块详解
其他关于Python的总结文章请访问: https://www.jianshu.com/nb/47435944
collections 模块给出了python中一些功能更加强大的数据结构、集合类
顾名思义, namedtuple 就是有了名字的 tuple ,声明一个 namedtuple 类的时候可以传入两个参数,第一个是这个 tuple 的名字,第二个是一个 str 的 list ,依次说明其中每一个元素的名称:
运行结果:
再比如,使用一个 namedtuple 来存储一个 马尔可夫决策过程 (Markov Decision Process,MDP)模型:
deque 是一个双向列表,非常适用于队列和栈,因为普通的 list 是一个线性结构,使用索引访问元素时非常快,但是对于插入和删除就比较慢,所以 deque 可以提高插入和删除的效率,可以使用 list(a_deque) 将 deque 转换成 list 。
常用的方法:
一个例子:
运行结果:
defaultdict 是给不存在的 key 分配一个默认值的字典,和普通的 dict 相比,如果遇到 key 不存在的情况,不会抛出 KeyError ,而是返回默认值。其他的行为和 dict 一模一样:
运行结果为:
正如其名字所说, OrderedDict 是一个有序的字典,普通的 dict 中的 key 是没有顺序,即我们遍历一个字典的时候是不知道它所遍历的顺序的,单独 OrderedDict 为 key 进行了排序,顺序就是拆入键的顺序,后插入的排在后边,这样在遍历的时候就有了顺序:
运行结果为:
ChainMap 是一个将多个 dict 按照循序串起来的数据结构,在查找字典中的某一个键所对应的值的时候,先从 ChainMap 中的第一个字典查起,如果该字典有该 key ,就返回对应的值,没有就依次往后查找后边的 dict 。
获得的结果为:
Counter 是一个计数器,它是 dict 的一个子类,可以根据键来区别记录多个不同的计数,相当于一个计数器集合,还可以通过 update 函数一次性更新多个计数器:
得到的结果:
2022-06-17
mengvlog 阅读 102 次 更新于 2025-12-16 05:58:57 我来答关注问题0
檬味博客在线解答立即免费咨询

Python相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部