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. keras常见问题

    问题:AttributeError: 'CRF' object has no attribute '_outbound_nodes' 解答:这个一般情况下是keras版本的问题,将其改为keras== ...

  2. Rocket - diplomacy - LazyModuleImpLike

    https://mp.weixin.qq.com/s/gDbUto1qd7uWbpnxovr5pg   介绍LazyModuleImpLike类的实现.     1. wrapper   LazyMo ...

  3. Chisel3 - 模块

    https://mp.weixin.qq.com/s/2vjM-gcauvHnn6KJzlOm4g   Chisel的模块和Verilog的模块很相似,都用来定义模块结构(hierarchical s ...

  4. css背景图定位和浮动

    网站图标引入:<link rel="shortcut icon" href="ico图标地址"> 背景图片  background-image: u ...

  5. Java实现 蓝桥杯 算法训练 Remember the A La Mode(暴力)

    试题 算法训练 Remember the A La Mode 问题描述 Hugh Samston经营着一个为今年的ICPC世界总决赛的参与者提供甜点的餐饮服务.他将会提供上面有冰激凌的饼片.为了满足不 ...

  6. Java实现蓝桥杯模拟元音单词的验证

    问题描述 小明对类似于 hello 这种单词非常感兴趣,这种单词可以正好分为四段,第一段由一个或多个辅音字母组成,第二段由一个或多个元音字母组成,第三段由一个或多个辅音字母组成,第四段由一个或多个元音 ...

  7. C++实现车轮轨迹

    标题:车轮轴迹 栋栋每天骑自行车回家需要经过一条狭长的林荫道.道路由于年久失修,变得非常不平整.虽然栋栋每次都很颠簸,但他仍把骑车经过林荫道当成一种乐趣. 由于颠簸,栋栋骑车回家的路径是一条上下起伏的 ...

  8. java实现第四届蓝桥杯快速排序

    快速排序 题目描述 快速排序算法是典型的分治思想的运用.它使用某个key把全部元素分成两组,其中一组的元素不大于另一组.然后对这两组再次进行递归排序. 以下代码实现了快速排序.请仔细阅读代码,填写缺少 ...

  9. WinUI 3试玩报告

    1. 什么是 WinUI 3 在微软 Build 2020 开发者大会上,WinUI 团队宣布可公开预览的 WinUI 3 Preview 1,它让开发人员可以在 Win32 中使用 WinUI.Wi ...

  10. ModelAndView的部分回顾

    ModelAndView的部分回顾 //@RestController @Controller //@SessionAttributes("user") //把modelandvi ...