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. Android酷炫有用的开源框架

    一.代码库 1.from  代码家 整理比較好的源代码连接 一.兼容类库 ActionBarSherlock : Action Bar是Android 3.0后才開始支持的,ActionBarSher ...

  2. 怎样提升 RailS 应用的性能?

    Is rails slow? 「铁路非常慢」,你或许听过这个笑话,那么我们的 Rails 框架呢? 假设说 Rails 慢,那么怎样提升 Rails APP 的性能就成了开发人员们最关注的问题. 或许 ...

  3. UI性能优化

    我的思路 在移动设备上打开UI界面卡顿,等待时间长,页面白块,等等体验是很不好的.本文记录我在工作中解决UI卡顿的方法. 我主要从以下方面入手 资源量 界面打开做的操作 界面自身的逻辑 IO的读写(包 ...

  4. Java并发编程实践读书笔记(2)多线程基础组件

    同步容器 同步容器是指那些对所有的操作都进行加锁(synchronize)的容器.比如Vector.HashTable和Collections.synchronizedXXX返回系列对象: 可以看到, ...

  5. VS2010灵活运用快捷操作功能(总结)

    转载于:http://blog.csdn.net/trassion/article/details/7667814 1.快速using(这个的快捷键是ctrl+.) 2.快速回到之前编辑的代码页面现在 ...

  6. dubbo2.5.6从下载到编译成功并且部署成功过程

    本文基于dubbo2.5.6版本 原文链接:http://www.cnblogs.com/zhuwenjoyce/       1,下载dubbo 首先从 github 下载源代码并阅读 readme ...

  7. IntelliJ IDEA(六) :Settings(下)

    一.Build,Execution,Deployment 项目的构建,执行,部署相关的配置. 1. Build Tools 构建工具,包含Maven,Gradle,Gant. Maven Work o ...

  8. Struts2学习---简单的数据校验、访问Web元素

    1.简单的数据校验 在action里面我们已经给出了一个数据校验: public String execute() { if(user.getUsername().equals("usern ...

  9. iOS开发之Xcode常用调试技巧总结

    转载自:iOS开发之Xcode常用调试技巧总结 最近在面试,面试过程中问到了一些Xcode常用的调试技巧问题.平常开发过程中用的还挺顺手的,但你要突然让我说,确实一脸懵逼.Debug的技巧很多,比如最 ...

  10. iOS MJRefresh上拉加载更多

    1.导入MJRefresh包 2.在类中引入:#import "MJRefresh.h" 3.添加footerView 添加加载更多的UI样式: MJRefreshAutoNorm ...