1.计数器(counter)

counter是对字典的方法,用来追踪值的出现次数;具备字典的所有功能和自己的功能。

>>> from collections import Counter
>>> d2 = Count
>>> d2 = Counter('abbcccddd') #对值计数
>>> print(d2)
Counter({'d': 3, 'c': 3, 'b': 2, 'a': 1})
>>> print(type(d2))
<class 'collections.Counter'>
>>> d2 = Counter('abbcccddd')
>>> for i in d2.elements(): #计数元素迭代器
... print(i)
...
b
b
a
d
d
d
c
c
c
>>> d2.clear() #清空元素
>>> print(d2)
Counter() >>> d3 = d2.copy() #拷贝
>>> d3
Counter({'d': 3, 'c': 3, 'b': 2, 'a': 1}) >>> d2.update('ddffffff') #更新
>>> d2
Counter({'f': 6, 'd': 5, 'c': 3, 'b': 2, 'a': 1}) >>> d2.subtract('fffff') #减去元素个数
>>> d2
Counter({'d': 5, 'c': 3, 'b': 2, 'a': 1, 'f': 1}) >>> d4 = d2.pop('f') #提取dict的key
>>> d4
1
>>> d2
Counter({'d': 5, 'c': 3, 'b': 2, 'a': 1})

2、有序字典(OrderedDict)

OrderedDict是对字典的补充,它可以记住字典元素添加的顺序。

>>> from collections import OrderedDict
>>> dic1 = OrderedDict({'k1':'v1','k2':'v2','k4':'v4','k3':'v3'})
>>> dic1 #创建有序列的字典
OrderedDict([('k4', 'v4'), ('k1', 'v1'), ('k2', 'v2'), ('k3', 'v3')])
>>> print(type(dic1))
<class 'collections.OrderedDict'>
>>> dic1.popitem() #默认提取最后要给key
('k3', 'v3')
>>> dic1
OrderedDict([('k4', 'v4'), ('k1', 'v1'), ('k2', 'v2')])
>>> dic1.move_to_end('k4') #将指定key移到最后
>>> dic1
OrderedDict([('k1', 'v1'), ('k2', 'v2'), ('k4', 'v4')])

3、默认字典(defaultdict)

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

>>> from collections import defaultdict
>>> dict1 = defaultdict(list) #创建默认字典
>>> dict1
defaultdict(<class 'list'>, {})
>>> print(type(dict1))
<class 'collections.defaultdict'>
>>> for i in range(20): #实例
... if i%2 == 0:
... dict1['k1'].append(i)
... else:
... dict1['k2'].append(i)
...
>>> dict1
defaultdict(<class 'list'>, {'k1': [0, 2, 4, 6, 8, 10, 12, 14, 16, 18], 'k2': [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]})

4、可命名元组(namedtuple)

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

>>> from collections import namedtuple
>>> tup1 = namedtuple('tup1',['x','y','z','u']) #创建可命名元组
>>> obj = tup1(111,22,333,4444) #创建对象
>>> print(obj.x) #输出对象序列的值
111
>>> print(obj.y)
22
>>> print(obj.z)
333
>>> print(obj.u)
4444

python3之模块collections的更多相关文章

  1. python模块--collections

    python的内建模块collections有几个关键的数据结构,平常在使用的时候,开发者可以直接调用,不需要自己重复制造轮子,这样可以提高开发效率. 1. deque双端队列 平常我们使用的pyth ...

  2. Python之常用模块--collections模块

    认识模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的 ...

  3. [转]python3之模块psutil系统性能信息

    转自:https://www.cnblogs.com/zhangxinqi/p/9106265.html 阅读目录 1.psutil模块安装 2.获取CPU信息 3.内存信息 4.磁盘信息 5.网络信 ...

  4. 【转】Python3 configparse模块(配置)

    [转]Python3 configparse模块(配置) ConfigParser模块在python中是用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(s ...

  5. day22 模块-collections,time,random,pickle,shelve等

    一.引入模块的方式: 1. 认识模块 模块可以认为是一个py文件. 模块实际上是我们的py文件运行后的名称空间 导入模块: 1. 判断sys.modules中是否已经导入过该模块 2. 开辟一个内存 ...

  6. Python3 operator模块关联代替Python2 cmp() 函数

    Python2 cmp() 函数 描述 cmp(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1. Python ...

  7. Python3 logging 模块

    Python3 logging模块 日志模块: 用于便捷记录日志且线程安全的模块 CRITICAL = 50 FATAL = CRITICAL ERROR = 40 WARNING = 30 WARN ...

  8. python3 selenium模块Chrome设置代理ip的实现

    python3 selenium模块Chrome设置代理ip的实现 selenium模块Chrome设置代理ip的实现代码: from selenium import webdriver chrome ...

  9. python3 导入模块

    python3导入模块和python2  有些不同   需要指定相对目录 如,在Project下有一个nlp目录里面有一个ltp模块,则 from n1.ltp import Clawer

随机推荐

  1. lua 中pairs 和 ipairs差别

    ipairs 和pairs在lua中都是遍历tbale的函数可是两者有差别 1.pairs遍历table中的全部的key-vale 而ipairs会依据key的数值从1開始加1递增遍历相应的table ...

  2. 通过路由url携带参数进行参数传递

    一.url解析参数 在路由中写入,同一个控制器,同一个页面模板,可以写多个路由,不同的路由对应相同的页面,只是在这种传参数的状态下的特定页面. .state("OrderRecord&quo ...

  3. Elasticsearch批处理操作——bulk API

    Elasticsearch提供的批量处理功能,是通过使用_bulk API实现的.这个功能之所以重要,在于它提供了非常高效的机制来尽可能快的完成多个操作,与此同时使用尽可能少的网络往返. 1.批量索引 ...

  4. 大数据学习(2)HDFS文件管理

    命令行管理HDFS [root@server1 bin]# hadoop fs Usage: hadoop fs [generic options] [-appendToFile <locals ...

  5. mysql还原数据库时,提示ERROR 1046 (3D000) No database selected 的解决方法

    使用mysql数据库的朋友, 经常会使用mysqldump备案数据库, 然后到新服务器还原, 这个过程中, 有朋友会遇到ERROR 1046 (3D000)  No database selected ...

  6. springboot学习笔记-4 整合Druid数据源和使用@Cache简化redis配置

    一.整合Druid数据源 Druid是一个关系型数据库连接池,是阿里巴巴的一个开源项目,Druid在监控,可扩展性,稳定性和性能方面具有比较明显的优势.通过Druid提供的监控功能,可以实时观察数据库 ...

  7. 用C#写入Excel表并保存

    想用C#操作Excel表,首先要做一些准备工作. 如果要操作 microsoft office Excel 2003表,就需要引入Microsoft office 11.0 object librar ...

  8. Say Hello to ConstraintLayout

    ConstraintLayout介绍 ConstraintLayout让你可以在很平的view结构(没有多层布局嵌套)中构建一个复杂的布局结构. 有点像RelativeLayout, 所有的view都 ...

  9. 关于MAX()函数的一点思考

    本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/103 考虑如下表和sql: CREATE TABLE `ikno ...

  10. [置顶] xamarin android自定义标题栏(自定义属性、回调事件)

    自定义控件的基本要求 这篇文章就当是自定义控件入门,看了几篇android关于自定义控件的文章,了解了一下,android自定义控件主要有3种方式: 自绘控件:继承View类,所展示的内容在OnDra ...