一、官方介绍

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

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

下面只介绍几种

二、counter计数类

# 统计相同元素出现的次数,可以是列表,字符串
counter_test = collections.Counter(["name","age","weight","name"])
print(counter_test) #Counter({'name': 2, 'age': 1, 'weight': 1})counter_test = collections.Counter("my name is maple")
print(counter_test) #Counter({'m': 3, ' ': 3, 'a': 2, 'e': 2, 'y': 1, 'n': 1, 'i': 1, 's': 1, 'p': 1, 'l': 1})# 数量从大到小排列,获取前N个元素
print(counter_test.most_common(3)) #[('m', 3), (' ', 3), ('a', 2)]# elements()取得计数器中的所有元素,获取的是一个可迭代对象
print(counter_test.elements()) #<itertools.chain object at 0x0000017422610160>
for i in counter_test.elements():print(i)# subtract()相减,原来的计数器中的每一个元素的数量减去后添加的元素的数量
counter_test.subtract('hello')
print(counter_test) #Counter({'m': 3, ' ': 3, 'a': 2, 'y': 1, 'n': 1, 'e': 1, 'i': 1, 's': 1, 'p': 1, 'l': -1, 'h': -1, 'o': -1})# update()更新计数器
counter_test.update('hello')
print(counter_test) #Counter({'m': 3, ' ': 3, 'a': 2, 'e': 2, 'y': 1, 'n': 1, 'i': 1, 's': 1, 'p': 1, 'l': 1, 'h': 0, 'o': 0})

三、有序字典orderedDict

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
from collections import OrderedDict
dic = OrderedDict()
dic['name'] = 'maple'
dic['age'] = '18'
dic['weight'] = '70'
print(dic) #OrderedDict([('name', 'maple'), ('age', '18'), ('weight', '70')])# move_to_end('name') 移动指定的键值对到最后
dic.move_to_end("name")
print(dic) #OrderedDict([('age', '18'), ('weight', '70'), ('name', 'maple')])# 其他方法与普通字典一样
print(dic.update({"heigh":"17"}))
print(dic.pop("age"))
print(dic.popitem())
print(dic.items())
print(dic.keys())
print(dic.values())

四、默认字典defaultdict

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import collections
dic = collections.defaultdict(list)
dic['name'].append('maple')
print(dic)#defaultdict(<class 'list'>, {'name': ['maple']})# defaultdict作用:元素分类
# 案例,将相同的数字放入同一个字典values列表中
# dic={"2":[2,2],"3":[3]...}
list1=[2,5,6,7,3,6,8,10,3,6,4,2]dic={}
for i in list1:res=[]if str(i) in dic:dic[str(i)].append(i)else:res.append(i)dic[str(i)]=res
print(dic)#{'2': [2, 2], '5': [5], '6': [6, 6, 6], '7': [7], '3': [3, 3], '8': [8], '10': [10], '4': [4]}dic=collections.defaultdict(list)
for i in list1:if str(i) in dic:dic[str(i)].append(i)else:dic[str(i)].append(i)
print(dic)#defaultdict(<class 'list'>, {'2': [2, 2], '5': [5], '6': [6, 6, 6], '7': [7], '3': [3, 3], '8': [8], '10': [10], '4': [4]})

五、双向队列deque

from collections import deque #创建双向队列
d = deque()
d.append('1')
d.append('2')# append()向队列中插入数据(从右边插入)
d.append('3')
print(d)# appendleft()向队列中插入数据(从左边插入)
d.appendleft('4')
print(d)# clear()清空队列
d.clear()
print(d)# count()计数
d.append('1')
d.append('1')
print(d)
print(d.count('1'))# extend()从右边向队列添加额外元素
d.extend(['a','b','c'])
print(d)# extendleft()从左边向队列添加元素
d.extendleft(['d','e','f'])
print(d)# index()取得元素索引
d.index('1')# insert()指定位置插入元素
d.insert(1,'z')
print(d)# pop()从右边移除一个元素
d.pop()
print(d)# popleft()从左边移除一个元素
d.popleft()
print(d)# remove()移除指定元素
d.remove('1')
print(d)# reverse()反转队列
d.reverse()
print(d)# rotate()将右边指定的元素个数移到队列左边
d.append('4')
d.append('5')
d.append('6')
print(d)
d.rotate(3)
print(d)

python内建集合模块collections功能,计数,有序,双向队列相关推荐

  1. python内建时间模块 time和datetime

    时间模块 UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间.在中国为UTC+8.DST(Daylight Saving Time)即夏令时. ...

  2. python 生成001开始的序号_你知道嘛:Python内建序列通用操作有6种实现方法(赶快收藏)...

    本文内容主要介绍了Python内建序列通用操作6种实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下!!! 数据结构式通过某种方式(例如对元素进 ...

  3. 冒泡排序 python内置_除了冒泡排序,你知道Python内建的排序算法吗?

    选自hackernoon,作者:Brandon Skerritt,机器之心编译,参与:高璇.思源.对于编程算法,可能很多读者在学校第一个了解的就是冒泡排序,但是你真的知道 Python 内建排序算法 ...

  4. python内建常用函数

    #标题1# # python内建常用函数# #python内建常用函数 在这里插入图片描述 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020030211175 ...

  5. python内建模块_Python 内建模块

    1.内建模块: 在Python中,有一个内建模块,该模块中有一些常用函数;而该模块在Python启动后.且没有执行程序员所写的任何代码前,Python会首先加载该内建函数到内存.另外,该内建模块中的功 ...

  6. Python原生数据结构增强模块collections

    collections简介 python提供了4种基本的数据结构:list.tuple.dict.set.基本数据结构完全可以hold住所有的场景,但是在处理数据结构复杂的场景时,这4种数据结构有时会 ...

  7. python内建方法

    在help文档中查看方法的参数时: 在'/'之前的参数都是位置参数 在'/'与'*'之间的参数可以被用作位置参数和关键字参数 在'*'之后的参数只能是关键字参数 我们可以使用dir(__builtin ...

  8. python 内建排序 HOW TO

    list.sort()与sorted() python 有两个内建排序函数:一个是list.sort(),对调用该函数的list进行原地排序:另一个是sorted(),可以对任意迭代器进行排序,返回l ...

  9. Python 内置时间模块:Calendar

    Python 内置的日历( calendar )模块主要输出跟日历相关的内容,相对 datetime 和 time 模块来说, calendar 模块的功能要简单些. 最常用的两个功能是输出某年的日历 ...

最新文章

  1. 一.jquery.datatables.js表格显示
  2. 【嵌入式开发】时钟初始化 ( 时钟相关概念 | 嵌入式时钟体系 | Lock Time | 分频参数设置 | CPU 异步模式设置 | APLL MPLL 时钟频率设置 )
  3. 初探swift语言的学习笔记二(可选类型?和隐式可选类型!)
  4. 2021,国产数据库的躬行实践之年
  5. c语言组json包,json格式解析和libjson的用法介绍(关于cjson的使用方法)
  6. IIS 7.0 中的 HTTP 状态代码
  7. SQL Server从入门到精通pdf
  8. Thinkpad x230 win7/xp 双系统安装全过程
  9. 华为云计算08—灾备
  10. javaSE (十六)Randon、System类的方法(生成随机数、主动垃圾回收、终止jvm、对程序进行记时、System自带的复制数组的方法)
  11. Python+PIL 轻松制作九宫格图片
  12. 腾讯云双11服务器优惠报价表详细内容
  13. 微信指数来了,营销人又有新工具
  14. 影刀RPA自动化学习和部分问题解决方式
  15. SAP ABAP 解析JSON
  16. 操作系统第四章——文件管理(下)
  17. JS特效教程,学完即精通
  18. 管家婆服装.NET II TOP 系列,安装过程中提示“silverlight/Sys未定义”错误,解决方案
  19. Python+Streamlit实现项目成本管理挣值分析可视化
  20. win11 环境变量的配置

热门文章

  1. 第1章 游戏之乐——快速找出故障机器
  2. Linux按文件内容查找文件
  3. nagios新添加服务有时显示,有时不显示问题解决
  4. java分析日志文件_java程序如何对监控软件的日志文件进行如下分析?
  5. java 线性计算_计算线性指数Tensorflow
  6. 每天一香蕉,长成螺纹钢
  7. ALEIDoc EDI(7)--IDoc Extension
  8. ABAP之程序相互调用--SUBMIT
  9. SAP FI新手常用代码
  10. 如何成为国内敏捷BI领跑者?这家企业的经验值得借鉴