Python3中的collections模块实现了一些专业的容器数据类型

  最常用的容器数据类型 字典、列表和元组、集合都已经被Python默认导入,但在实现一些特定的业务时,collections模块中的容器数据类型则显得更为专业,如:

    collections.Counter

      计数器类型,dict的子类,一般用于统计一个序列类型中可哈希的元素的个数

# 必须要导入collections模块
import collections ct = collections.Counter("Hello,World!")
print(ct) # 输出结果: Counter({'l': 3, 'o': 2, 'H': 1, 'e': 1, ',': 1, 'W': 1, 'r': 1, 'd': 1, '!': 1})
print(ct["l"]) # 输出结果: 3

Counter

    collections.OrderDict

      有序字典与常规字典相似,dict的子类,它会记住键值对插入的顺序

# 必须要导入collections模块
import collections # 和字典差不多,只不过是有顺序的
od = collections.OrderedDict()
od["k1"] = "v1"
od["k2"] = "v2"
od["k3"] = "v3"
# 把某个键值对移动到最后
od.move_to_end("k1")
print(od) # 输出结果: OrderedDict([('k2', 'v2'), ('k3', 'v3'), ('k1', 'v1')])

OrderDict

    collections.defaultdict

      这个类和字典dic基本一致,只是调用了一个工厂函数来给字典中的value提供一个指定类型的默认值

# 必须要导入collections模块
import collections dd = collections.defaultdict(lambda: "默认值")
print(dd["k1"]) # 输出结果: 默认值

defaultdict

    collections.namedtuple

      这是调用了一个工厂方法,相当于比较快捷的创建了一个元组类,而访问这个元组中的元素不是通过下标,而是通过属性名

# 必须要导入collections模块
import collections Coordinate = collections.namedtuple("Coordinate", ["x", "y"])
newyork = Coordinate(-77.02, 39.91)
# 可以使用上面定义的字段名称来轻松访问元组中的值,多用于坐标之类的东西
print(newyork.x) # 输出结果: -77.02
print(newyork.y) # 输出结果: 39.91

namedtuple

    collections.deque

      双向队列

# 必须要导入collections模块
import collections # 双向队列和list差不多
dq = collections.deque([1, 2, 3, 4, 5, ])
# 向队列的右边加一个元素
dq.append(6)
# 向队列的左边加一个元素
dq.appendleft(0)
# 删除并获取最后一个元素
print(dq.pop()) # 输出结果: 6
# 删除并获取第一个元素
print(dq.popleft()) # 输出结果: 0
print(dq) # 输出结果: deque([1, 2, 3, 4, 5])

deque

Python3-collections模块-容器数据类型的更多相关文章

  1. Python3 collections模块的使用

    collections 介绍 collections是Python内建的一个集合模块,提供了许多有用的集合类和方法. 可以把它理解为一个容器,里面提供Python标准内建容器 dict , list  ...

  2. collections——高性能容器数据类型

    由于最近对机器学习算法感兴趣,一直知道python有一个包collections封装了一些比dict,list之类高级点的类,所以抽空研究下,为接下来的工作准备. 主要参考是https://docs. ...

  3. Python3 collections模块

    https://www.cnblogs.com/zhangxinqi/p/7921941.html http://www.wjhsh.net/meng-wei-zhi-p-8259022.html h ...

  4. Python3标准库:collections容器数据类型

    1. collections容器数据类型 collections模块包含除内置类型list.dict和tuple以外的其他容器数据类型. 1.1 ChainMap搜索多个字典 ChainMap类管理一 ...

  5. python初探-collections容器数据类型

    collections容器数据类型是对基本数据类型的补充,简单介绍下计数器.有序字典.默认字典.可命名元祖.队列. 计数器(Counter) Counter是对字典类型的补充,用于追踪值得出现次数 c ...

  6. python collections(容器)模块

    原文:http://docs.pythontab.com/interpy/collections/collections/ 容器(Collections) Python附带一个模块,它包含许多容器数据 ...

  7. Python3简明教程(十四)—— Collections模块

    collections 是 Python 内建的一个集合模块,提供了许多有用的集合类. 在这个实验我们会学习 Collections 模块.这个模块实现了一些很好的数据结构,它们能帮助你解决各种实际问 ...

  8. 《Python》常用模块之collections模块

    内置的数据类型: int  float  complex str  list  tuple dict  set 基础数据类型: int  float  complex str  list  tuple ...

  9. Python中collections模块的使用

    本文将详细讲解collections模块中的所有类,和每个类中的方法,从源码和性能的角度剖析. 一个模块主要用来干嘛,有哪些类可以使用,看__init__.py就知道 '''This module i ...

随机推荐

  1. websocket ddos检测脚本

    from websocket import create_connection while(1): ws = create_connection('wss://ha-cmim.cmcc-cs.cn:1 ...

  2. Beta冲刺 —— 5.31

    这个作业属于哪个课程 软件工程 这个作业要求在哪里 Beta冲刺 这个作业的目标 Beta冲刺 作业正文 正文 github链接 项目地址 其他参考文献 无 一.会议内容 1.讨论并解决每个人存在的问 ...

  3. JAVASE(九)面向对象特性之 : 继承性、方法重写、关键字super、

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.继承性 1.1 为什么要类的继承性?(继承性的好处) ①减少了代码的冗余,提高了代码的复用性:②更好 ...

  4. windows FTP工具,Windows FTP工具下载!

    IIS7服务器管理工具能够作为FTP的客户端,进行FTP的命令操作,可在客户端,下载,安装FTP软件! 同时,它也可以作为VNC的客户端,进行VNC的命令操作!它能够批量连接Windows和Linux ...

  5. Java实现 LeetCode 368 最大整除子集

    368. 最大整除子集 给出一个由无重复的正整数组成的集合,找出其中最大的整除子集,子集中任意一对 (Si,Sj) 都要满足:Si % Sj = 0 或 Sj % Si = 0. 如果有多个目标子集, ...

  6. Java实现 蓝桥杯VIP 算法训练 输出米字形

    例如:n=3时,包含A,B,C:n=4时,包含A,B,C,D. 矩阵的正中间为n个字母中字典序最大的那个,从这个字母开始,沿着西北.正北.东北.正西.正东.西南.正南.东南八个方向各有一条由大写字母组 ...

  7. Java实现 蓝桥杯 基因牛的繁殖

    基因牛的繁殖 张教授采用基因干预技术成功培养出一头母牛,三年后,这头母牛每年会生出1头母牛, 生出来的母牛三年后,又可以每年生出一头母牛.如此循环下去,请问张教授n年后有多少头母牛? 以下程序模拟了这 ...

  8. 温故知新-多线程-深入刨析park、unpark

    文章目录 摘要 park.unpark 看一下hotspot实现 参考 你的鼓励也是我创作的动力 Posted by 微博@Yangsc_o 原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | ...

  9. LNMP zabbix 4.4

    硬件配置需求 环境 平台 CPU/内存 数据库 硬盘 监控主机数 小型 CentOS 2CPU/1GB MySQL.InnoDB 普通 100 中型 CentOS 2CPU/2GB MySQL.Inn ...

  10. neo4j导入csv文件

    neo4j导入csv文件 关于neo4j的安装 官网和网上博客提供了n中安装的方法,这里不再赘述: 普通安装: https://cloud.tencent.com/developer/article/ ...