目录

  • 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模块相关推荐

  1. Python学习笔记第五周

    目录 一.基础概念 1.模块定义 2.包的定义 3.导入包的本质 4.导入模块的本质 5.导入方法 6.import的本质 7.导入优化 8.模块分类 9.标准库介绍 1.time与datetime ...

  2. FA-Oracle ERP 资产模块的非常规功能探讨

    摘自:http://bbs.erp100.com/thread-266444-1-1.html 标题: [已结帖][分享知识 原创连载] Oracle ERP 资产模块的非常规功能探讨,抛砖引玉 [打 ...

  3. 泰斗T302模块选择导航系统方法

    内容速览 模块介绍 产品特性 导航配置 数据解析 模块介绍 T302模块是泰斗微电子推出的一款支持BD2 B1/GPS L1频点的双模授时模块.模块内部集成了泰斗微电子自主研发的BD2 B1/GPS ...

  4. Lora 模块E22-400T22D(SX1268, 22dBm)

    无线串口(UART)模块, 基于SEMTECH SX1268射频芯片, 具有多种传输方式, 工作在410.125至493.125MHz频段(默认 433.125MHz). LoRa扩频技术, TTL电 ...

  5. 基于E220-400T30D模块实现简单的Lora无线通信

    1.模块简介 用户手册下载 E220-400T30D采用全新一代的LoRa扩频技术,基于LLCC68芯片方案设计的无线串口模块(UART).具有多种传输方式,工作在(410.125-493.125MH ...

  6. etcd 笔记(05)— etcd 代码结构、各模块功能、整体架构、各模块之间的交互、请求和应答流程

    1. etcd 项目结构和功能 etcd 项目代码的目录结构如下: $ tree ├── auth ├── build ├── client ├── clientv3 ├── contrib ├── ...

  7. OpenCV 笔记(01)— OpenCV 概念、整体架构、各模块主要功能

    1. OpenCV 概念 图像处理( Image Processing )是用计算机对图像进行分析, 以达到所需结果的技术, 又称影像处理. 图像处理技术一般包括图像压缩, 增强和复原, 匹配.描述和 ...

  8. Python 多线程总结(1)- thread 模块

    thread 模块 1. 单线程 首先看下单线程程序运行的例子,如下所示, import timedef loop0():print 'start loop0 begin', time.ctime() ...

  9. 关于python导入模块和package的一些深度思考

    背景 在python中有导入模块和导入package一说,这篇文章主要介绍导入模块和package的一些思考. 首先什么是模块?什么是package? 模块:用来从逻辑上组织python代码(变量,函 ...

  10. Python Re 模块超全解读!详细

    内行必看!Python Re 模块超全解读! 2019.08.08 18:59:45字数 953阅读 121 re模块下的函数 compile(pattern):创建模式对象 > import ...

最新文章

  1. 高可用MySQL_Mysql高可用架构
  2. git bash命令_?你可能不太会用的10个Git命令
  3. 团队作业1——团队展示选题
  4. 【控制】《复杂运动体系统的分布式协同控制与优化》-方浩老师-第1章-绪论
  5. 41. First Missing Positive
  6. 从其它地方复制的代码到VS 提示无法识别的标记的解决办法
  7. Matlab语音采集与读写程序,基于MATLAB的语音信号录制采集和分析的程序设计
  8. oracle导入大量csv_Oracle导入数据到表(支持插入大量数据)
  9. SpringBoot Jar包外部application文件
  10. IEnumerable和IEnumerator
  11. Linux vi 替换字符串
  12. CRM客户关系管理系统项目总结
  13. 使用db1小波做3层小波分解
  14. MDM授权管理设计方案
  15. MySQL的安装与配置——详细教程
  16. 一小时搞定 简单VBA编程 Excel宏编程快速扫盲
  17. 洛谷P5713 【深基3.例5】洛谷团队系统经典解法
  18. 江南大学c语言课程绩点评分,江南大学无锡医学院课程考核档案管理办法
  19. 华为HMS:风雨突然,仍求自我
  20. RTKLIB进行伪距单点定位1——main函数

热门文章

  1. mysqld mysql-debug_mysqld --debug-sync
  2. android sd卡 格式化 rom,Android 系统获取内存,ROM,SD卡大小
  3. java正则卡号4位一空格_银行卡号每隔4位插入空格
  4. svn 仓库 本地 连接_建立Subversion仓库在本地如何操作?
  5. 计算机/程序员常用英语(持续添加,包括一些简写)
  6. docker下载地址及 设置自己的阿里云镜像加速器,Kubernetes(K8S) 安装
  7. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-5.PageHelper分页插件使用
  8. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-5.开源工具的优缺点选择和抽象方法的建议...
  9. Linux--信号阻塞与屏蔽
  10. 阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_3 响应之返回值是void类型...