Collections主要功能

  • Counter 类
  • defaultdict 类
  • namedtuple 类
  • deque类
  • orderedDict类

Counter 是一个有助于 hashable 对象计数的 dict 子类。它是一个无序的集合,其中hashable对象的元素存储为键,它们的计数存储为值,计数可以为任意的整数,包括零和负数

可以在python的shell中查看Counter的帮助信息

c=collections.Counter('from collections import Counter')
print c

Counter({'o': 5, ' ':
3, 'r': 3, 't': 3, 'c': 2, 'e': 2, 'i': 2, 'm': 2, 'l': 2, 'n': 2, 'f': 1, 'p':
1, 's': 1, 'u': 1, 'C': 1})
print c.most_common(4)

[('o', 5), (' ', 3),
('r', 3), ('t', 3)]
print sorted(c) 对字典进行排序

[' ', 'C', 'c', 'e',
'f', 'i', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u']
print sum(c.values())计算字典的值
print c.keys()返回字典的键

Defaultdict的作用是如果字典的key不存在,使用的时候也不抛出异常,而返回一个默认值,默认值为None

dic=collections.defaultdict(lambda: 'N/A')
dic['a']='abd'
print dic['a']
print dic['b'] 返回N/A

namedtuple命名元组有助于对元组每个位置赋予意义,并且让我们的代码有更好的可读性和自文档性。你可以在任何使用元组地方使用命名元组

point=collections.namedtuple('point',['x','y','z'])
n=point(2,5,78)
print n.x

deque,使用list 存储数据时,按照索引访问元素很快,但是插入和删除元素就很慢了,因为list是线性存储,数据量大的时候,插入和删除效率很低。deque是为了高效实现插入和删除操作的双向列表,适合用于队列和栈。

q=collections.deque([1,2,3])
q.appendleft(5)
print q
q.popleft()
print q

 

字典是无序的。orderedDict是有序字典的应用。OrderedDict 的有序性是按照插入的顺序,而不是KEY的顺序。
d=dict([('a', 1), ('b', 2),
('c', 3)])
print d  {'a': 1, 'c': 3, 'b': 2}

od = collections.OrderedDict([('a', 1), ('b', 2),
('c', 3)])
print od  OrderedDict([('a',
1), ('b', 2), ('c', 3)])

collections之python基本应用的更多相关文章

  1. collections(python常用内建模块)

    文章来源:https://www.liaoxuefeng.com/wiki/897692888725344/973805065315456 collections collections是Python ...

  2. [Python] Create Unique Unordered Collections in Python with Set

    A set is an unordered collection with no duplicate items in Python. In this lesson, you will learn h ...

  3. Python基础、collections补充

    collections collections是Python数据类型的补充,可以实现Counter计数.可命名元组(namedtuple).默认字典.有序字典.双向队列等功能 参考:http://py ...

  4. Python 第三篇(下):collections系列、集合(set)、单双队列、深浅copy、内置函数

     一.collections系列: collections其实是python的标准库,也就是python的一个内置模块,因此使用之前导入一下collections模块即可,collections在py ...

  5. Python系列之Collections内置模块(1)

    collections 是 python 的内置模块,源码位于 Lib/collections/__init__.py ,该模块提供了通用的数据容器. deque 容器对象 通过 from colle ...

  6. 【Python】 更多数据类型collections&简易数据文件shelve

    ■collections collections在python内建的数据类型基础上新增一些实用的数据类型,其目的在于增加代码的可读性?(虽然我自己没怎么用过..) ① deque 双端队列 q = d ...

  7. python模块(os,sys,hashlib,collections)

    列出目录下所有文件 os.listdir('dirname'):列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式返回. 创建文件夹: os.mkdir('文件夹')    创建文件夹 os ...

  8. 【转】python模块分析之collections(六)

    [转]python模块分析之collections(六) collections是Python内建的一个集合模块,提供了许多有用的集合类. 系列文章 python模块分析之random(一) pyth ...

  9. Python常用模块--collections

    collections是Python中一个非常强大的容器数据模块. 1.创建升级版的元组--namedtupe Python的元组(1,2,3)具有不可变性,但是单独的元组在无法满足现有需求时,可以使 ...

随机推荐

  1. Linux中硬盘物理扇区与文件系统文件对应关系(转)

    1               概述 系统读写文件过程中,如下面内核打印信息,报告读写某个扇区错误.那么我们如何能够通过sector找到读写哪个文件错误? kernel: end_request: I ...

  2. dojo:如何用MultiSelect实现类似ListBox风格的FromTo功能

    欲实现的功能如下图: 主要要解决的问题包括两个方面: 一个是MultiSelet初始化的工作,一个是FromTo功能按钮的实现.这主要是因为MultiSelect控件是存储无关的,并不像Select或 ...

  3. 设计模式-责任链模式Chain of Responsibility)

    一.定义 职责链模式是一种对象的行为模式.在职责链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链.请求在这个链上传递,直到链上的某一个对象决定处理此请求.发出这个请求的客户端并不知道链 ...

  4. 关于Firedac的一点看法

    Firedac集成在Delphi中已经有几个版本了,偶尔也拖到Form上试着用用,虽然知道Firedac有可能是最终的(或很很长时间内)数据访问技术,可一直不能接受它,其中最大的原因就是过于“复杂” ...

  5. hanlp自然语言处理包的基本使用--python

    hanlp拥有:中文分词.命名实体识别.摘要关键字.依存句法分析.简繁拼音转换.智能推荐. 这里主要介绍一下hanlp的中文分词.命名实体识别.依存句法分析,这里就不介绍具体的hanlp的安装了,百度 ...

  6. 利用JavaFx开发RIA桌面应用-事件监听

    1 事件监听 最近利用javaFX开发桌面客户端,碰到需要给各种UI控件添加事件监听,在这里做一个简单的小结,供日后参考. 2 分类处理 在JavaGUI 和Android中,事件通常通过实现list ...

  7. Centos7 环境下 Python2.7 换成 Python3.7 运行 scrapy 应用所遇到的问题记录

    参考网友的安装过程 Linux系统Centos安装Python3.7 设置Python默认为Python3.7 mv /usr/bin/python /usr/bin/python.bak ln -s ...

  8. 移动互联网终端的touch事件判断方向

    var pressX = 0, pressY = 0; document.body.addEventListener('touchmove', function(event) { // 如果这个元素的 ...

  9. sp_who, sp_who2和sp_who3

    sp_who可以返回如下信息: (可选参数LoginName, 或active代表活动会话数)Spid         (系统进程ID)status      (进程状态)loginame  (用户登 ...

  10. uoj#29. 【IOI2014】Holiday

    http://uoj.ac/problem/29 经过的点集一定是一个包含start的区间,为了经过这个区间内所有点,必须先到达一个区间端点,再到达另一个区间端点,剩余的步数则贪心选区间内最大价值的点 ...