collections 模块主要提供了五种特殊类型容器,此外还提供了许多抽象基类用于检查类的接口

1、Counter 对象,主要用于统计出现次数,是dict的一个子类,用法与形式和 dict 很类似

Counter([iterable-or-mapping]):初始化一个Counter对象,用mapping初始化不能直接统计,用iterable会直接统计每个迭代对象的出现次数
elements():返回每个对象,出现了几次就输出几次,各对象间次序随机,返回的是itertools.chain对象
items():返回包含对象和出现次数的 tuple 的 list
most_common([n]):返回n个出现次数最多的对象及其次数,含 tuple 的 list 形式返回
subtract([iterable-or-mapping]):两者相减,可以产生负数
update([iterable-or-mapping]):与dict直接替换更新不同,counter执行的是两者的加和

2、deque 对象,是一个双向列表,首尾添加删除元素效率高,可以用于获取文件的最后几行

deque([iterable[, maxlen]]):初始化时指定了 maxlen 则 deque 的元素上限为 maxlen,超过 maxlen 时新添加的元素加入到 deque 尾部,前部元素会被删除
append(x),appendleft(x),extend(iterable),extendleft(iterable):添加元素的函数
clear():清空元素
pop(),popleft():弹出元素
remove(value):移除第一个出现的value
reverse():反转
rotate(n):将n个元素移到另一边,n为负数时从前移动

3、defaultdict 对象,指定默认类型的一种dict,是dict的子类
defaultdict([default_factory[, ...]]):default_factory 即为指定的默认类型,新添加的 key 的 value 会默认为指定类型

4、namedtuple() 函数,创建一个新类,是tuple的子类,可以用指定的名字来访问元素,也可以用下标,当用于从csv读取数据时较为好用
namedtuple(typename, field_names[, verbose=False][, rename=False]):typename为新类的名字,fieldnames为指定的名字,可以用列表也可以用逗号或空格分割的字符串,verbose为True时打印类的定义,rename
可以用装饰器对创建的类添加新功能

5、OrderedDict 对象,除了有顺序外,和普通dict一样,凡是用dict的地方都可以用OrderedDict 替换
OrderedDict([items]):新加入的如果原来就有则覆盖,顺序不变,删了再加则加在最后
popitem(last=True):弹出最后一组,若False则弹出第一组

Python2.7-collections的更多相关文章

  1. 交叉编译Python-2.7.13到ARM(aarch32)—— 支持sqlite3

    作者:彭东林 邮箱:pengdonglin137@163.com QQ: 405728433 环境 主机: ubuntu14.04 64bit 开发板: qemu + vexpress-a9 (参考: ...

  2. Python快速入门教程【转】

    第一章 Python基础知识 1.1 介绍      1.1.1 特点      Python是一种面向对象.解释型计算机程序设计语言.语法简洁清晰,强制用空白符作为语句缩进.      Python ...

  3. [python]CentOS 6下安装Python2.7

    安装方法 如果在CentOS上自己编译安装过python2.7,使用过程中会发现有些标准库没有安装之类的问题. 逛别人博客的时候发现,一个便捷的方法:使用RHSCL的全称是Red Hat Softwa ...

  4. 【转】Python3.x和Python2.x的区别

    这个星期开始学习Python了,因为看的书都是基于Python2.x,而且我安装的是Python3.1,所以书上写的地方好多都不适用于Python3.1,特意在Google上search了一下3.x和 ...

  5. python2.x和3.x的区别

    这个星期开始学习Python了,因为看的书都是基于 Python2.x,而且我安装的是Python3.1,所以书上写的地方好多都不适用于Python3.1,特意在Google上search了一下 3. ...

  6. 【python3】collections系列介绍

    文章来源:http://www.jb51.net/article/48771.htm (http://www.cnblogs.com/wushank/p/5122786.html) 修改人:天马流行拳 ...

  7. Python2.x与Python3.x的区别

    这个星期开始学习Python了,因为看的书都是基于Python2.x,而且我安装的是Python3.1,所以书上写的地方好多都不适用于Python3.1,特意在Google上search了一下3.x和 ...

  8. 我与python3擦肩而过(一)—— Dict与collections.OrderredDict邂逅

    最近一直在撸Python Data Analysis上的代码(书是基于Python2的,小白我用的python3),所以我下的时候多少有些改动. 这是9.4中的nltk词频分析关于Dict_key的问 ...

  9. Python3.x和Python2.x的区别-转

    这个星期开始学习Python了,因为看的书都是基于Python2.x,而且我安装的是Python3.1,所以书上写的地方好多都不适用于Python3.1,特意在Google上search了一下3.x和 ...

  10. 详解python2 和 python3的区别

    看到这个题目大家可能猜到了我接下来要讲些什么,呵呵,对了,那就是列出这两个不同版本间的却别!搜索一下大家就会知道,python有两个主要的版本,python2 和 python3 ,但是python又 ...

随机推荐

  1. JAVA设计模式详解(五)----------适配器模式

    各位朋友好,本章节我们继续讲第五个设计模式. 在生活中,我们都知道手机内存卡是无法直接接电脑的,因为内存卡的卡槽比较小,而电脑只有USB插孔,此时我们需要用到读卡器.这个读卡器就相当于是适配器.这是生 ...

  2. CSS隐藏多余的文字

    效果: <p><strong>商品名称:</strong>新鲜现摘云南绥江半边红李子甜脆脱骨李6斤当季绿色有机水果包邮</p></div> ...

  3. 微信小程序开发--宽为百分百,页面仍可左右滑动

    这段时间小程序开发时,很多时候,希望内容充满整个屏幕(高度.宽度100%),如下图 但是在设置 .followrecords-container{width:100%;} 后发现 手机在横向上虽然页面 ...

  4. Android--PullToRefreshListView的onRefreshComplete()不起作用的问题

    今天用到了网上开源的下拉刷新组件PullToRefreshListView的第三方下拉刷新的ListView 我们发现 有时候我们当使用它的onRefreshComplete()方法是,我们下拉出来的 ...

  5. Python之密度聚类

    # -*- coding: utf-8 -*- """ Created on Tue Sep 25 10:48:34 2018 @author: zhen "& ...

  6. @RequestMapping、@ResponseBody 和 @RequestBody 注解的用法与区别

    背景: 帮助同事解决文件上传的bug(文件上传成功,但是页面提示上传接口异常,数据的确是插入了),从前端layui页面找错误,然后浏览器调试,找了半天无果.layui文件上传格式code返回是数值,后 ...

  7. VS2010/2013 运行是很卡的加速方案

    前段时间为了一个项目而把VS2008换成了VS2010,结果原本就不堪重负的本本跑起VS2010来那更是慢得没话说,于是看了遍VS2010选项,又从网上到处找资料找优化方法,总算使我的VS2010跑得 ...

  8. ajax status 错误

    status **:未被始化 status **:请求收到,继续处理 status **:操作成功收到,分析.接受 status **:完成此请求必须进一步处理 status **:请求包含一个错误语 ...

  9. [Python_3] Python 函数 & IO

    0. 说明 Python 函数 & IO 笔记,基于 Python 3.6.2 参考  Python: read(), readline()和readlines()使用方法及性能比较  Pyt ...

  10. 【转】Mybatis学习---MyBatis知识、原始Dao开发和mapper代理开发

    [原文]https://www.toutiao.com/i6594610137560777223/ 一.什么是MyBatis MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及 ...