博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列...
阅读量:5965 次
发布时间:2019-06-19

本文共 1120 字,大约阅读时间需要 3 分钟。

1、计数器(counter)

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

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

 
Counter

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

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

2、有序字典(orderedDict )

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

 
OrderedDict

        我们都知道字典本来是无序的,它依靠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}
 
原生字典解决方法
 
defaultdict字典解决方法

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

 
defaultdict

4、可命名元组(namedtuple) 

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

1 import collections2  3 Mytuple = collections.namedtuple('Mytuple',['x', 'y', 'z'])
 
Mytuple

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

5、双向队列(deque)

一个线程安全的双向队列

 
deque

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

 
Queue.Queue

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

 
deque Code

 

转载于:https://www.cnblogs.com/FWF1944/p/10878317.html

你可能感兴趣的文章
DNS 解析过程详解
查看>>
NodeSchool: JavaScript函数式编程
查看>>
intellij idea常用设置
查看>>
多线程
查看>>
4月第三周国内域名解析商Top10:万网升至20.32%
查看>>
五,通道之间的数据传输
查看>>
[Troubleshooting]-Outlook预定Lync预定会议显示乱码与残留号码
查看>>
系统无法启动
查看>>
关于使用Aptana+Pydev构建Python开发环境(Django)
查看>>
windows temp用户问题
查看>>
Mysql数据库备份和还原常用的命令
查看>>
Category:UITextField添加点击事件
查看>>
关于大数据和互联网的一点想法
查看>>
一个可以检测网络内主机类型的脚本
查看>>
常见的mysql集群
查看>>
Django Tips
查看>>
HTML5教程:1.1 迎接新的Web时代
查看>>
wuzhicms刷新按钮的功能开发
查看>>
为apache添加SSL支持
查看>>
MTK DRM常见问题介绍
查看>>