python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列...
1、计数器(counter)
Counter是对字典类型的补充,用于追踪值的出现次数。
ps:具备字典的所有功能 + 自己的功能
![](/assets/blank.gif)
我们从中挑选一些相对常用的方法来举例:
在上面的例子我们可以看出,counter方法返回的是一个字典,它将字符串中出现的所有字符都进行了统计。在这里再介绍一下update方法,这个update方法是将两次统计的结果相加,和字典的update略有不同。
2、有序字典(orderedDict )
orderdDict是对字典类型的补充,他记住了字典元素添加的顺序
![](/assets/blank.gif)
我们都知道字典本来是无序的,它依靠key,value之间的索引进行匹配,那么有序字典的原理是什么呢? 原理: dic = {'k2':1,'k1':2},li = ['k1','k2'],这个字典在内部维护了一个key列表。
从上面的图中我们就知道,尽管我们定义的字典是从1到8按顺序写的,但是在打印的过程当中并没有按到我们希望的顺序打印。这个时候有序字典的优势就出来了:
3、默认字典(defaultdict)
学前需求:
1 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。 2 即: {'k1': 大于66 , 'k2': 小于66}
![](/assets/blank.gif)
![](/assets/blank.gif)
defaultdict是对字典的类型的补充,他默认给字典的值设置了一个类型。
![](/assets/blank.gif)
4、可命名元组(namedtuple)
根据nametuple可以创建一个包含tuple所有功能以及其他功能的类型。
1 import collections 2 3 Mytuple = collections.namedtuple('Mytuple',['x', 'y', 'z'])
![](/assets/blank.gif)
主要用于‘坐标’的表示。用法如下:
5、双向队列(deque)
一个线程安全的双向队列
![](/assets/blank.gif)
注:既然有双向队列,也有单项队列(先进先出 FIFO )
![](/assets/blank.gif)
一个线程安全的双向队列:双向队列我们可以理解为两个栈底相连的栈,和队列的先进先出不同,元素可以从这个队列的两端分别加入或者删除值。尽管list其实完全可以实现这个功能,但是python的collections类还是很贴心的把这些方法都归纳了出来,歪果仁就是有意思啊~~~
![](/assets/blank.gif)
转载于:https://www.cnblogs.com/FWF1944/p/10878317.html
python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列...相关推荐
- python基础知识5——赋值与深浅拷贝——整数和字符串,列表元组字典
深浅copy 和很多语言一样,Python中也分为简单赋值.浅拷贝.深拷贝这几种"拷贝"方式. 在学习过程中,一开始对浅拷贝理解很模糊.不过经过一系列的实验后,我发现对这三者的概念 ...
- Python基础知识笔记
文章目录 Python基础知识 教程:https://www.liaoxuefeng.com/wiki/1016959663602400 内置函数:https://docs.python.org/3/ ...
- python基础知识资料-Python基础知识汇总
原标题:Python基础知识汇总 1.Anaconda的安装 百度Anaconda的官网,下载左边的Python3.X版本 然后是设置路径,最后给出Jupyter notebook.具体参考: 猴子: ...
- python基础知识培训价格_Python基础知识的学习
看到有人推荐Jupyter notebook中markdown另存为md文件的方法,可以将文档直接导入到知乎里.自己尝试了下,效果很好.文档中为Python基础知识的学习和练习内容. 数据类型:字符串 ...
- 1、Python 基础知识总结
1.Python 简介 Python 是一门简单易学的,面向对象的,解释型的脚本语言,也是一种开源的.可移植性强的.可扩展性强的高级编程语言,常用于科学计算与人工智能.WEB 开发.金融.云计算等领域 ...
- Python基础知识总结
1. Python基础知识 1.1 Python历史 1.1.1 Python起源 Python的作者,Guido von Rossum,荷兰人.1982年,Guido从阿姆斯特丹大学获得了数学和计 ...
- TensorFlow实战之Python基础知识笔记
Python基础知识目录 一.初始Python 1. 解释和编译 2. Python语言特点 3. Python基础语法 二.基础知识 1. 数据类型 2. 常量.变量 3. 运算符 4. 条件语句 ...
- python基础知识测试题_Python中的单元测试—基础知识
python基础知识测试题 Unit testing is the number one skill which separates people who just finished their de ...
- Python基础知识与常用数据类型
Python基础知识与常用数据类型 目录 Python基础知识与常用数据类型 一.Python概述: 二.Python中的基础语法: 三.Python内置数据结构: 4.附录 一.Python概述: ...
- python基础知识资料-Python基础知识梳理 - 第02部分
本文是Python基础知识的第二篇, 主要是对内置对象类型的介绍, 涉及的类型如下表. 数字类型 在Python中, 数字并不是一个真正的对象类型, 而是一组类似类型的分类, 如整数和浮点数, 复数等 ...
最新文章
- 进化算法_遗传算法相关资料
- 怎样使用Debussy+ModelSim快速查看前仿真波形
- 如何提高PyTorch“炼丹”速度?这位小哥总结了17种方法,可直接上手更改的那种...
- sublime Text3插入参考文献问题
- java线程深入_深入聊聊Java多线程
- 不同级别的Java开发人员的应聘要求
- 虚拟机的安装中遇到的问题(WIN10主机)
- 没事学学docker(二):本地Centos7和阿里云服务器安装docker及其解决安装出现的问题
- 图像特征:突出显示稀疏突出区域Image Signature:Highlighting Sparse Salient Regions
- 每日N题—数据结构题集
- autocad不能画图_最新AutoCAD软件+插件合集+视频讲解,高效实用,限时领
- HTML 显示梯形图片
- 3D Touch详细实例介绍之一
- 智慧数字经营有什么作用
- 麦当劳巨无霸汉堡合作超人气动漫《机动战士高达》
- Git 修改前面提交commit的名字
- Book Sharing
- java中取值保留小数点后两位的四种方法
- 关于Spring容器中定时器到时执行会出现两个线程同时执行的问题
- 网站被降权了怎么办?被降权后的正确处理方法
热门文章
- Python 进阶之路 (五) map, filter, reduce, zip 一网打尽
- IoC容器9——基于注解的容器配置
- 《Nmap渗透测试指南》—第2章2.8节ICMP Ping Types扫描
- 如何使用JMeter来实现更大批量的并发的解决方案(即如何设置controller和Agent)
- CSS Flex-box示例代码
- .Net 中的序列化与反序列化[概述]
- Symbian手记【二】 —— Symbian对象构造
- project 2013使用记录
- 针对低网速的性能优化
- Linux系统中用DNW向ARM开发板下载程序