python基础之collections模块
Counter
Counter是一个简单的计数器,可以统计一段字符串中各个元素出现的次数:
import collections
counter_1=collections.Counter('kjsdkfhajksdfkljajkjds')
print(counter_1)
Counter({'j': 5, 'k': 5, 's': 3, 'd': 3, 'a': 2, 'f': 2, 'l': 1, 'h': 1})
当然counter也可以统计列表中每个元素出现的次数:
list_1=[1,2,3,1,1,2,]
counter_2=collections.Counter(list_1)
print(counter_2)
Counter({1: 3, 2: 2, 3: 1})
counter是对字典类型的一个补充,它具有字典的所有功能。
OrderedDict
有序字典也是对字典的一个补充,顾名思义,他是对key进行序列化的特殊的字典:
>>> import collections
>>> d1={'k1':11,'k2':22}
>>> d=collections.OrderedDict(d1)
>>> print(d)
OrderedDict([('k1', 11), ('k2', 22)])
defaultdict
默认字典是一种特殊的字典,它定义了当指定的字典的键不存在时,返回的默认值。
d=collections.defaultdict(list)
print(d['k1'])
[]
namedtuple
这个功能一般在坐标表示时较为常用,
>>> t1=collections.namedtuple('t1',['x','y',]) #定义一个名为t1的功能,该功能可以实现以x,y为索引的由两个元素组成的tuple
>>> t=t1(11,22)
>>> t.x #效果等同于t[0]
1
namedtuple是一个函数,它用来创建一个自定义的tuple对象,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素。
deque
特殊的list,具有list的所有功能。它是双向队列,不管是首部还是尾部都可以进行添加和删除。与之相对的是queue,单向队列(FIFO 先进先出)
>>> q=collections.deque([1,2,3])
>>> print(q)
deque([1, 2, 3])
>>> q.extend([2,3])
>>> print(q)
deque([1, 2, 3, 2, 3])
>>> q.extendleft([2,3])
>>> print(q)
deque([3, 2, 1, 2, 3, 2, 3])
#append也有,当然也有appendleft
python基础之collections模块的更多相关文章
- 十八. Python基础(18)常用模块
十八. Python基础(18)常用模块 1 ● 常用模块及其用途 collections模块: 一些扩展的数据类型→Counter, deque, defaultdict, namedtuple, ...
- python基础31[常用模块介绍]
python基础31[常用模块介绍] python除了关键字(keywords)和内置的类型和函数(builtins),更多的功能是通过libraries(即modules)来提供的. 常用的li ...
- python基础(11)-常用模块
re(正则)模块 常用方法 findall() 以列表返回所有满足条件的结果 import re print(re.findall('\d','a1b2c2abc123'))#['1', '2', ' ...
- Python标准库——collections模块的Counter类
1.collections模块 collections模块自Python 2.4版本开始被引入,包含了dict.set.list.tuple以外的一些特殊的容器类型,分别是: OrderedDict类 ...
- Python基础-包与模块
Python基础-包与模块 写在前面 如非特别说明,下文均基于Python3 摘要 为重用以及更好的维护代码,Python使用了模块与包:一个Python文件就是一个模块,包是组织模块的特殊目录(包含 ...
- python基础,函数,面向对象,模块练习
---恢复内容开始--- python基础,函数,面向对象,模块练习 1,简述python中基本数据类型中表示False的数据有哪些? # [] {} () None 0 2,位和字节的关系? # ...
- python基础-包和模块
Python基础-包与模块 写在前面 如非特别说明,下文均基于Python3 摘要 为重用以及更好的维护代码,Python使用了模块与包:一个Python文件就是一个模块,包是组织模块的特殊目录(包含 ...
- python开发模块基础:collections模块¶miko模块
一,collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdic ...
- python(43):collections模块
Python作为一个“内置电池”的编程语言,标准库里面拥有非常多好用的模块.比如今天想给大家 介绍的 collections 就是一个非常好的例子. 基本介绍: 我们都知道,python拥有一些内阻的 ...
随机推荐
- 实践lnmpde 的安装
1.先安装apache, yum install httpd 2.安装MySQL rpm -qa | grep mysql // 这个命令就会查看该操作系统上是否已经安装了mysql数据库 ...
- 20172329 2018-2019《Java程序设计与数据结构》课程总结
作者:lalalouye(20172329王文彬) 2018-2019年大二Java程序设计与数据结构课程总目录:第一周 第二周 第三周 第四周 第五周 第六周 第七周 第八周 第九周 实验一 实验二 ...
- JavaScript实现大整数减法
继上一篇博文写了大整数加法之后,我又模拟上篇博文的算法,自己实现了大整数减法. 大整数减法相对于加法来说,稍微复杂一点.由于要考虑一些情况: 1. 两个数相减,可能会出现结果为正.负和0三种情况: 2 ...
- 炸弹人NABCD分析
团队项目NABCD分析结果 N(Need 需求):现在安卓手游比较热门,所以我们想要编写这样一款软件应用于学生,让学生可以在课余时间放松心情,缓解学习压力. A (Approach 做法):使用Coc ...
- 提交内容到版本库:git commit
- The user survey(用户调查)
在周末,我们找了一些人来进行了一个调查,鉴于选择困难,我们只找到了几个真正的小学生,没有找到家长,其余那些都是找大学生来做调查的,我们和他们说,让他们把自己的立场看成是小学生或家长.下面是我们整理出来 ...
- asp.net 错误24
错误 24 “xxx.Web.xxx.xxx”不包含“xxName”的定义,并且找不到可接受类型为“xxx.Web.xxxr.xxx”的第一个参数的扩展方法“xxxName”(是否缺少 using 指 ...
- js如何判断一个值是不是Array类型
本来判断一个对象类型用typeof是最好的,不过对于Array类型是不适用的可以使用 instanceof操作符var arrayStr=new Array("1","2 ...
- PROFIBUS-DP现场总线的结构及应用
PROFIBUS的最大优点在于具有稳定的国际标准EN50170作保证,并经实际应用验证具有普遍性.目前已广泛应用于制造业自动化.流程工业自动化和楼宇.交通电力等领域. PROFIBUS由3个兼容部分组 ...
- 第十周(11.18-11.24)----个人项目----学习java总结2
一.获取随机数 方法1 (数据类型)(最小值+Math.random()*(最大值-最小值+1)) ,注意这里的每一个括号最好都不要省略掉. 例: public static void main(S ...