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. Webstorm/IntelliJ Idea 过期破解方法

    一.Webstorm过期破解方法 如下图,WebStorm过期了,每次都是用30分钟,重新打开. 解决方法: 注册时,在打开的License Activation窗口中选择“License serve ...

  2. Go mysql使用举例

    下载MySQL驱动 $ go get github.com/go-sql-driver/mysql 或者下载源码放到GOPATH中,下载地址:https://github.com/go-sql-dri ...

  3. Spring Cloud(Dalston.SR5)--Eureka 常用配置

    配置参数 默认值 说明 服务注册中心配置 Bean类:org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean eu ...

  4. [转]Eclipse快捷键 10个最有用的快捷键

    Eclipse快捷键 10个最有用的快捷键 5 4 Eclipse中10个最有用的快捷键组合  一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合.通过这些组合可以更加容易的 ...

  5. DEBUG模式详解

    1. 如果开启了DEBUG模式,那么以后我们修改了Django项目的代码,然后按下ctrl+s,那么Django就会自动的给我们重启项目,不需要手动重启.2. 如果开启了DEBUG模式,那么以后Dja ...

  6. Configure Virtual Serial Port Driver (vspd)注册表

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSBC7\Ports\COM3COM4] “Port1”=”COM3” “Port2”=” ...

  7. %cd% 与 %~dp0% 区别

    @echo off echo path:%~dpnx0% ipconfig /all|findstr "\<IPv4 适配器\>" %cd%  在批处理和命令窗口都能使 ...

  8. 我的less学习之路

    less注释 可以在代码中使用块样式(/* */)和行内注释(//),但是当编译LESS代码时,单行注释不会显示在CSS文件中.开发中主要维护的是less文件,所以可以使用行内注释,最终编译的css文 ...

  9. 黄聪:jquery+Datatables出现数据过长,表格不自动换行,columns设置width失效的办法

    添加下面的CSS代码即可: table.dataTable.nowrap th, table.dataTable.nowrap td{white-space: normal !important;}

  10. asp.net利用HttpModule实现防sql注入和加载样式和JS文件

    1.新建一个类,实现IHttpModule接口 代码如下: public class SqlHttpModule : IHttpModule { public void Dispose() { } p ...