083 conllections模块
目录
- conllections模块
- 1.有名元组
- 2.nametuple有名元组的作用
- 3.deque
- 4.计数器Counter
conllections模块
- conllecctions是python内建的一个集合模块,提供了许多有用的集合类
1.有名元组
tuple是元组,它是可以表示一个不变的集合比如一个坐标的点就可以表示成:
p = (1,2)
实际上我们通过一个这样的元组很难想象它是已个坐标轴
numedtuple有名元组表示
from collections import namedtuple Point = namedtuple('Point', ['x', 'y']) p = Point(1, 2) p.x # 1 p.y # 2
2.nametuple有名元组的作用
namedtuple是一个函数,它用来创建一个自定义的tuple对象,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素。
这样一来,我们用namedtuple可以很方便地定义一种数据类型,它具备tuple的不变性,又可以根据属性来引用,使用十分方便。
# 默认字典 from collections import defaultdict # 用匿名函数来给他一个默认值 dic = defaultdict(lambda :'nan') # dic = {} # 如果找不到赋了一个默认值 dic['a'] = 1 print(dic['a']) print(dic['c'])
3.deque
使用list存储数据时,按索引访问元素很快,但是插入和删除元素就很慢了,因为list是线性存储,数据量大的时候,插入和删除效率很低。
deque是为了高效实现插入和删除操作的双向列表,适合用于队列和栈:
list追加值-->线性表
lis = [1,2,3] # 线性表 lis.append(4) print(lis) # [1,2,3,4]
用deque实现向表的两端都追加元素,这就是双端列表的特性
- de.append() 在链表的后面追加元素,这个和列表追加是一样的
- de.appendleft()在链表的开头追加元素,这个是用列表很难实现的
- de.popleft()从链表的开头删除元素
from collections import deque # 链表de = deque([1,2,3]) de.append(4) print(de) de.appendleft(0) print(de) de.popleft() de.popleft() print(de)
4.计数器Counter
是一个简单的计数器,例如,统计字符出现的个数:
我们之前学习数据类型的时候,计数都是用字典来实现的
from collections import Counter s= 'programming'c = Counter() # 字典 for i in s:c[i] +=1 print(c)# Counter({'r': 2, 'g': 2, 'm': 2, 'p': 1, 'o': 1, 'a': 1, 'i': 1, 'n': 1})
转载于:https://www.cnblogs.com/XuChengNotes/p/11402845.html
083 conllections模块相关推荐
- Python学习笔记第五周
目录 一.基础概念 1.模块定义 2.包的定义 3.导入包的本质 4.导入模块的本质 5.导入方法 6.import的本质 7.导入优化 8.模块分类 9.标准库介绍 1.time与datetime ...
- FA-Oracle ERP 资产模块的非常规功能探讨
摘自:http://bbs.erp100.com/thread-266444-1-1.html 标题: [已结帖][分享知识 原创连载] Oracle ERP 资产模块的非常规功能探讨,抛砖引玉 [打 ...
- 泰斗T302模块选择导航系统方法
内容速览 模块介绍 产品特性 导航配置 数据解析 模块介绍 T302模块是泰斗微电子推出的一款支持BD2 B1/GPS L1频点的双模授时模块.模块内部集成了泰斗微电子自主研发的BD2 B1/GPS ...
- Lora 模块E22-400T22D(SX1268, 22dBm)
无线串口(UART)模块, 基于SEMTECH SX1268射频芯片, 具有多种传输方式, 工作在410.125至493.125MHz频段(默认 433.125MHz). LoRa扩频技术, TTL电 ...
- 基于E220-400T30D模块实现简单的Lora无线通信
1.模块简介 用户手册下载 E220-400T30D采用全新一代的LoRa扩频技术,基于LLCC68芯片方案设计的无线串口模块(UART).具有多种传输方式,工作在(410.125-493.125MH ...
- etcd 笔记(05)— etcd 代码结构、各模块功能、整体架构、各模块之间的交互、请求和应答流程
1. etcd 项目结构和功能 etcd 项目代码的目录结构如下: $ tree ├── auth ├── build ├── client ├── clientv3 ├── contrib ├── ...
- OpenCV 笔记(01)— OpenCV 概念、整体架构、各模块主要功能
1. OpenCV 概念 图像处理( Image Processing )是用计算机对图像进行分析, 以达到所需结果的技术, 又称影像处理. 图像处理技术一般包括图像压缩, 增强和复原, 匹配.描述和 ...
- Python 多线程总结(1)- thread 模块
thread 模块 1. 单线程 首先看下单线程程序运行的例子,如下所示, import timedef loop0():print 'start loop0 begin', time.ctime() ...
- 关于python导入模块和package的一些深度思考
背景 在python中有导入模块和导入package一说,这篇文章主要介绍导入模块和package的一些思考. 首先什么是模块?什么是package? 模块:用来从逻辑上组织python代码(变量,函 ...
- Python Re 模块超全解读!详细
内行必看!Python Re 模块超全解读! 2019.08.08 18:59:45字数 953阅读 121 re模块下的函数 compile(pattern):创建模式对象 > import ...
最新文章
- 高可用MySQL_Mysql高可用架构
- git bash命令_?你可能不太会用的10个Git命令
- 团队作业1——团队展示选题
- 【控制】《复杂运动体系统的分布式协同控制与优化》-方浩老师-第1章-绪论
- 41. First Missing Positive
- 从其它地方复制的代码到VS 提示无法识别的标记的解决办法
- Matlab语音采集与读写程序,基于MATLAB的语音信号录制采集和分析的程序设计
- oracle导入大量csv_Oracle导入数据到表(支持插入大量数据)
- SpringBoot Jar包外部application文件
- IEnumerable和IEnumerator
- Linux vi 替换字符串
- CRM客户关系管理系统项目总结
- 使用db1小波做3层小波分解
- MDM授权管理设计方案
- MySQL的安装与配置——详细教程
- 一小时搞定 简单VBA编程 Excel宏编程快速扫盲
- 洛谷P5713 【深基3.例5】洛谷团队系统经典解法
- 江南大学c语言课程绩点评分,江南大学无锡医学院课程考核档案管理办法
- 华为HMS:风雨突然,仍求自我
- RTKLIB进行伪距单点定位1——main函数
热门文章
- mysqld mysql-debug_mysqld --debug-sync
- android sd卡 格式化 rom,Android 系统获取内存,ROM,SD卡大小
- java正则卡号4位一空格_银行卡号每隔4位插入空格
- svn 仓库 本地 连接_建立Subversion仓库在本地如何操作?
- 计算机/程序员常用英语(持续添加,包括一些简写)
- docker下载地址及 设置自己的阿里云镜像加速器,Kubernetes(K8S) 安装
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-5.PageHelper分页插件使用
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-5.开源工具的优缺点选择和抽象方法的建议...
- Linux--信号阻塞与屏蔽
- 阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_3 响应之返回值是void类型...