Python3-collections模块-容器数据类型
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模块-容器数据类型的更多相关文章
- Python3 collections模块的使用
collections 介绍 collections是Python内建的一个集合模块,提供了许多有用的集合类和方法. 可以把它理解为一个容器,里面提供Python标准内建容器 dict , list ...
- collections——高性能容器数据类型
由于最近对机器学习算法感兴趣,一直知道python有一个包collections封装了一些比dict,list之类高级点的类,所以抽空研究下,为接下来的工作准备. 主要参考是https://docs. ...
- Python3 collections模块
https://www.cnblogs.com/zhangxinqi/p/7921941.html http://www.wjhsh.net/meng-wei-zhi-p-8259022.html h ...
- Python3标准库:collections容器数据类型
1. collections容器数据类型 collections模块包含除内置类型list.dict和tuple以外的其他容器数据类型. 1.1 ChainMap搜索多个字典 ChainMap类管理一 ...
- python初探-collections容器数据类型
collections容器数据类型是对基本数据类型的补充,简单介绍下计数器.有序字典.默认字典.可命名元祖.队列. 计数器(Counter) Counter是对字典类型的补充,用于追踪值得出现次数 c ...
- python collections(容器)模块
原文:http://docs.pythontab.com/interpy/collections/collections/ 容器(Collections) Python附带一个模块,它包含许多容器数据 ...
- Python3简明教程(十四)—— Collections模块
collections 是 Python 内建的一个集合模块,提供了许多有用的集合类. 在这个实验我们会学习 Collections 模块.这个模块实现了一些很好的数据结构,它们能帮助你解决各种实际问 ...
- 《Python》常用模块之collections模块
内置的数据类型: int float complex str list tuple dict set 基础数据类型: int float complex str list tuple ...
- Python中collections模块的使用
本文将详细讲解collections模块中的所有类,和每个类中的方法,从源码和性能的角度剖析. 一个模块主要用来干嘛,有哪些类可以使用,看__init__.py就知道 '''This module i ...
随机推荐
- 前后端分离,如何在前端项目中动态插入后端API基地址?(in docker)
开门见山,本文分享前后端分离,容器化前端项目时动态插入后端API基地址,这是一个很赞的实践,解决了前端项目容器化过程中受制后端调用的尴尬. 尴尬从何而来 常见的web前后端分离:前后端分开部署,前端项 ...
- PowerPC-MPC56xx 启动模式
https://mp.weixin.qq.com/s/aU4sg7780T3_5tJeApFYOQ 参考芯片参考手册第5章:Chapter 5 Microcontroller Boot The ...
- Chisel3 - Tutorial - Adder
https://mp.weixin.qq.com/s/SEcVjGRL1YloGlEPSoHr3A 位数为参数的加法器.通过FullAdder级联实现. 参考链接: https://githu ...
- Chisel3 - util - BitPat
https://mp.weixin.qq.com/s/80Q8j-OSMtgh5a92pI-MZA 使用value和mask来描述一个比特模式,即:value = bits & mask. ...
- Java实现 LeetCode 747 至少是其他数字两倍的最大数(暴力)
747. 至少是其他数字两倍的最大数 在一个给定的数组nums中,总是存在一个最大元素 . 查找数组中的最大元素是否至少是数组中每个其他数字的两倍. 如果是,则返回最大元素的索引,否则返回-1. 示例 ...
- Java实现 蓝桥杯 一步之遥
一步之遥 从昏迷中醒来,小明发现自己被关在X星球的废矿车里. 矿车停在平直的废弃的轨道上. 他的面前是两个按钮,分别写着"F"和"B". 小明突然记起来,这两个 ...
- Java实现 LeetCode 50 Pow(x,n)
50. Pow(x, n) 实现 pow(x, n) ,即计算 x 的 n 次幂函数. 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例 2: 输入: 2.10000, ...
- Java实现洛谷 P1428 小鱼比可爱
题目描述 人比人,气死人:鱼比鱼,难死鱼.小鱼最近参加了一个"比可爱"比赛,比的是每只鱼的可爱程度.参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只 ...
- Python内存管理机制-《源码解析》
Python内存管理机制 Python 内存管理分层架构 /* An object allocator for Python. Here is an introduction to the layer ...
- .Net Core 配置之long类型 前端精度丢失和时间格式设置
在很多项目中,都采用的前后端分离的方式进行开发,经常遇到后台的long精度的数据到前端丢失不准确,显示效果为long类型(19位)的后几位为000,此时需要对long的字段进行设置,改变默认的返回类型 ...