python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列

摘要:
原理:dic={'k2':1,'k1':2},li=['k1','k2']。本词典在内部维护密钥列表。2.即,{“k1”:大于66,“k2”:小于66}本机字典解决方案defaultdict字典解决方案默认dict是字典类型的补充。它默认设置字典值的类型。1importcollections23Mytuple=集合。命名为d_dupleMytuple主要用于表示“坐标”。虽然list可以完全实现这个功能,但python的collections类在总结这些方法时非常体贴,歪果仁很有趣~~~dequeCode

1、计数器(counter)

Counter是对字典类型的补充,用于追踪值的出现次数。

ps:具备字典的所有功能 + 自己的功能

python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列第1张 Counter

我们从中挑选一些相对常用的方法来举例:

python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列第2张

在上面的例子我们可以看出,counter方法返回的是一个字典,它将字符串中出现的所有字符都进行了统计。在这里再介绍一下update方法,这个update方法是将两次统计的结果相加,和字典的update略有不同。

2、有序字典(orderedDict )

orderdDict是对字典类型的补充,他记住了字典元素添加的顺序

python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列第3张 OrderedDict

        我们都知道字典本来是无序的,它依靠key,value之间的索引进行匹配,那么有序字典的原理是什么呢? 原理: dic = {'k2':1,'k1':2},li = ['k1','k2'],这个字典在内部维护了一个key列表。

 python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列第4张

从上面的图中我们就知道,尽管我们定义的字典是从1到8按顺序写的,但是在打印的过程当中并没有按到我们希望的顺序打印。这个时候有序字典的优势就出来了:

python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列第5张

3、默认字典(defaultdict) 

学前需求:

1 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
2 即: {'k1': 大于66 , 'k2': 小于66}
python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列第6张 原生字典解决方法
python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列第7张 defaultdict字典解决方法

defaultdict是对字典的类型的补充,他默认给字典的值设置了一个类型。

python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列第8张 defaultdict

4、可命名元组(namedtuple) 

根据nametuple可以创建一个包含tuple所有功能以及其他功能的类型。

1 import collections
2  
3 Mytuple = collections.namedtuple('Mytuple',['x', 'y', 'z'])
python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列第9张 Mytuple

主要用于‘坐标’的表示。用法如下:

python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列第10张

5、双向队列(deque)

一个线程安全的双向队列

python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列第11张 deque

注:既然有双向队列,也有单项队列(先进先出 FIFO )

python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列第12张 Queue.Queue

一个线程安全的双向队列:双向队列我们可以理解为两个栈底相连的栈,和队列的先进先出不同,元素可以从这个队列的两端分别加入或者删除值。尽管list其实完全可以实现这个功能,但是python的collections类还是很贴心的把这些方法都归纳了出来,歪果仁就是有意思啊~~~

python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列第13张 deque Code

 python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列第14张

免责声明:文章转载自《python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇js对象中什么是可枚举性(enumerable)?继电器通过工业网关实现远程控制功能下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python 删除多个同一后缀名文件(基于python 3.X)

import osdef remove(): filearray = [] address_Excel="E:\totally\FinancePDF" f_list = os.listdir(address_Excel)for fileNAME in f_list:# os.path.splitext():分离文件名与扩展名 if os.path.s...

Python脚本获取参数的方式

Python脚本获取参数的方式 在运维过程中,常常需要自己写脚本,而python往往是最佳的选择。那么怎么获取python脚本的命令行参数呢,例如: python demo.py a b c 怎么获取命令行参数,a,b,c 呢?可以通过sys库里面的argv来实现, 例如: $ cat demo.py #-*- coding: UTF-8 -*- i...

Python三种方法计算皮尔逊相关系数(Pearson correlation coefficient)

文章目录0 皮尔逊系数1 python计算方法1.1 根据公式手写1.2 numpy的函数1.3 scipy.stats中的函数0 皮尔逊系数 在统计学中,皮尔逊相关系数( Pearson correlation coefficient),又称皮尔逊积矩相关系数(Pearson product-moment correlation coefficient,...

当Python遇到Andriod手机 万物皆可盘

【摘要】今天不跟大家讲python知识,是不很失望?No,看过了今天的内容,你python的装13指数,至少上升1w+,并附带暴击、溅射、眩晕、致盲效果。 当python遇到安卓手机 我们日常的python学习和使用都是在电脑上的,会写Linux下的python脚本、搞一些爬虫的项目、开发几个好玩的web网站,用python做数据分析。可如果脱离了电脑,就...

《Spark Python API 官方文档中文版》 之 pyspark.sql (三)

摘要:在Spark开发中,由于需要用Python实现,发现API与Scala的略有不同,而Python API的中文资料相对很少。每次去查英文版API的说明相对比较慢,还是中文版比较容易get到所需,所以利用闲暇之余将官方文档翻译为中文版,并亲测Demo的代码。在此记录一下,希望对那些对Spark感兴趣和从事大数据开发的人员提供有价值的中文资料,对PyS...

python- 双层装饰器 字符串格式化 python模块 递归 生成器 迭代器 序列化

1.双层装饰器 #!/usr/bin/env python3 # -*- coding: utf-8 -*- # author:zml LOGIN_INFO=False IS_ADMIN=False defcheck_log(func): definner(): res=func() ifLOGIN_INFO: print('验证成功!') return...