collections系列功能介绍

collections模块是python2.7.3之后新加的功能。

1.1、计数器(Counter)

Counter是对字典类型的补充,用于追踪值的次数

ps:具备字典的所有功能 + 自己的功能

>>> import collections
>>> c1=collections.Counter(‘asdasdf‘)
>>> print c1
Counter({‘a‘: 2, ‘s‘: 2, ‘d‘: 2, ‘f‘: 1})

1.2、c.update(d):将c、d两个计数器相加

>>> c = collections.Counter(‘aabc‘)
>>> c
Counter({‘a‘: 2, ‘c‘: 1, ‘b‘: 1})
>>> d=collections.Counter(‘aab‘)
>>> d
Counter({‘a‘: 2, ‘b‘: 1})
>>> c.update(d)
>>> c
Counter({‘a‘: 4, ‘b‘: 2, ‘c‘: 1})

1.3 clear()  清空计数器

>>> c
Counter({‘a‘: 4, ‘b‘: 2, ‘c‘: 1})
>>> c.clear()
>>> c
Counter()

2. 有序字典(OrderedDict):

orderedDict是对字典类型的补充,他记住了字典元素的添加顺序

我们知道字典是无序的,列表是有序的,OrderedDict方法原理就是将字典赋值时的key按顺序保存到一个列表中,例如list=[k1,k2,k3,...]。最后将字典的值按key的顺序调用出来

o1 = collections.OrderedDict()
o1[‘k1‘] = 1
o1[‘k2‘] = 2
o1[‘k3‘] = 3
>>> o1
OrderedDict([(‘k1‘, 1), (‘k2‘, 2), (‘k3‘, 3)])

3、默认字典(defaultdict):为字典中的values设置一个默认的类型,可以为列表,元组或者字典

例如:

>>> my_dict = collections.defaultdict(list)
>>> my_dict[‘k1‘].append(1)
>>> my_dict
defaultdict(<type ‘list‘>, {‘k1‘: [1]})

这里由于定了了默认values的类型为list,所以后面才能使用append方法,往列表赋值

默认字典2:上面的例子还可以这样写

>>> dic = {}
>>> dic[‘k1‘] = []
>>> dic[‘k1‘].append(1)
>>> dic
{‘k1‘: [1]}
时间: 2024-10-13 05:11:32

collections系列功能介绍的相关文章

vSphere 6.0 新功能介绍 系列 前言

最近准备写个系列:vSphere 6.0 新功能介绍 希望大家关注 希望自己坚持下来 vSphere 6.0 新功能介绍 系列 前言

JGroups系列之介绍和体会

很早就想做这个JGroups系列,因为在分布式的系统中,各个部分经常需要相互通信.这些通信包括:信息需要同时发给集群中的某些或全部的worker:或者一个worker启动.停止需要通知其他的worker:等等. 对于这些问题的解决,我们通常有各种各样的方法.比如,信息需要同时发给集群中的某些或全部的worker,这个问题,我们可能会采用MQ来解决:而对于后者,我们可能会通过维护心跳的方式来解决. 可能我们自己也知道,上述的方法要么太重,如MQ,我们需要维护一个MQ服务器:要么解决起来比较麻烦,如

C#中system.object的函数方法功能介绍-转载

C#中system.object的函数方法功能介绍 在C#中,Object类型是所有类型的根,大家平常开发中都要跟它打交道,但不见得对它里面的每个方法都知根知底,下面对它里面的每个方法都进行仔细的总结. 概述: 构造函数 Equals函数 Finalize函数 GetHashCode函数 GetType()函数 ReferenceEquals函数 MemberWiseClone()函数 ToString()函数 Object类型中一共有8个方法,重载的方法没有算进来.下面一一来看看这些方法. 1

《java.util.concurrent 包源码阅读》09 线程池系列之介绍篇

concurrent包中Executor接口的主要类的关系图如下: Executor接口非常单一,就是执行一个Runnable的命令. public interface Executor { void execute(Runnable command); } ExecutorService接口扩展了Executor接口,增加状态控制,执行多个任务返回Future. 关于状态控制的方法: // 发出关闭信号,不会等到现有任务执行完成再返回,但是现有任务还是会继续执行, // 可以调用awaitTe

Lifeline功能介绍01——日历及时间轴的查看

"Lifeline功能介绍"系列博客主要介绍目前为止已经实现的网站功能,包括:日历及时间轴的查看.个人事件的添加.课堂信息的查询等. 本篇介绍--日历及时间轴的查看 #用户登陆后会进入主页界面,为日历上对事件的动态显示,如图1 图1 在日历上已经过去的事项会显示为灰色,未结束的事件为彩色:而且可以通过右下角的下拉选项切换多种语言的日历风格. #点击右上角的选项,可以将日历模式的显示,切换为列表显示,如图2 图2 此界面同样支持事件的动态显示和多种语言风格的切换. #点击日历或者列表中的

Odoo + Anodoo功能介绍(7) SaaS公司如何实现自动化营销

对于SaaS公司,市场营销的重要程度正在超过销售人员.只有更快更好的inbound营销,才能带来高质量的营销线索,才能确保健康的销售管道. 当今的2C领域,各种在线的,自动化的,人工智能的营销手段百花齐放,而一些面向中小型企业和应用场景的SaaS公司,也正在迅速地使用自动化营销来打开2B市场.本文将从一个提纲挈领的角度给大家介绍一下Odoo + Anodoo在营销自动化方面的功能,更详细的可以参考系列文章: Odoo + Anodoo功能介绍(8):官网仅仅是公司介绍? Odoo + Anodo

An odoo功能介绍(21) 公司如何通过CRM管理开票

开票是SaaS公司销售过程中的重要一环,它承接销售订单,并且和回款相辅相成.SaaS公司的开票又和其他行业有很大的差异,甚至和传统的软件行业也有诸多不多.SaaS公司主要销售订阅产品,服务产品,会员产品,其开票涉及预付款开票,按服务项目分期开票,按交付人天开票,按月自动续订周期性自动开票,有时也涉及到实物的按交货的开票等等. 如此多的差异,那Odoo+Anodoo是怎么样实现的呢?限于篇幅和图片较多,系列文章分为较多篇幅介绍.本文从几个方面对CRM中怎么创建预付款发票的功能进行简要介绍.其他开票

Exchange2016正式版功能介绍及全新安装配置

Exchange2016功能介绍及全新安装配置 说到Exchange服务相信很多人都在关注,微软在2015年更新了很多服务,从功能上来说确实做了很多优化及提升,具体就不多说了,微软在2015年10月1日发布了Exchange2016正式版,版本还是分为标准版和企业版,此次发布为多语言版本 同样微软在2015年发布了那些新产品呢 : 我们还是说说Exchange2016,从安装及官网文档上看微软从Exchange2010到Exchange2016角色上缩减了很多,从Exchange2010的Mai

Python中生成器和迭代器的功能介绍

生成器和迭代器的功能介绍 1. 生成器(generator) 1. 赋值生成器 1. 创建 方法:x = (variable for variable in iterable) 例如:x = (i for i in range(10)) print(x) >>> <generator object <genexpr> at 0x00000000006B85C8> 返回值:generator #使用元祖推导式的时候回变成一个生成器. 2. 调用 方法:x.__nex