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模块的更多相关文章

  1. 十八. Python基础(18)常用模块

    十八. Python基础(18)常用模块 1 ● 常用模块及其用途 collections模块: 一些扩展的数据类型→Counter, deque, defaultdict, namedtuple, ...

  2. python基础31[常用模块介绍]

    python基础31[常用模块介绍]   python除了关键字(keywords)和内置的类型和函数(builtins),更多的功能是通过libraries(即modules)来提供的. 常用的li ...

  3. python基础(11)-常用模块

    re(正则)模块 常用方法 findall() 以列表返回所有满足条件的结果 import re print(re.findall('\d','a1b2c2abc123'))#['1', '2', ' ...

  4. Python标准库——collections模块的Counter类

    1.collections模块 collections模块自Python 2.4版本开始被引入,包含了dict.set.list.tuple以外的一些特殊的容器类型,分别是: OrderedDict类 ...

  5. Python基础-包与模块

    Python基础-包与模块 写在前面 如非特别说明,下文均基于Python3 摘要 为重用以及更好的维护代码,Python使用了模块与包:一个Python文件就是一个模块,包是组织模块的特殊目录(包含 ...

  6. python基础,函数,面向对象,模块练习

    ---恢复内容开始--- python基础,函数,面向对象,模块练习 1,简述python中基本数据类型中表示False的数据有哪些? #  [] {} () None 0 2,位和字节的关系? # ...

  7. python基础-包和模块

    Python基础-包与模块 写在前面 如非特别说明,下文均基于Python3 摘要 为重用以及更好的维护代码,Python使用了模块与包:一个Python文件就是一个模块,包是组织模块的特殊目录(包含 ...

  8. python开发模块基础:collections模块&paramiko模块

    一,collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdic ...

  9. python(43):collections模块

    Python作为一个“内置电池”的编程语言,标准库里面拥有非常多好用的模块.比如今天想给大家 介绍的 collections 就是一个非常好的例子. 基本介绍: 我们都知道,python拥有一些内阻的 ...

随机推荐

  1. python中数据分析常用函数整理

    一. apply函数 作用:对 DataFrame 的某行/列应用函数之后,Apply 返回一些值.函数既可以使用默认的,也可以自定义.注意:在第二个输出中应用 head() 函数,因为它包含了很多行 ...

  2. js循环复制一个div

    <html> <head> <title>Test of cloneNode Method</title> <script type=" ...

  3. 学霸网站-Alpha版本发布说明

    项目名称 学霸网站 项目版本 Alpha 项目团队 ourteam 发布日期 2014-11-23 一.版本的新功能 1.匿名提问 用户提问的时候可以选择匿名提问,这样在问题的详细信息不会显示提出者的 ...

  4. iOS自学-UILabel常见属性

    #import "ViewController.h" #import <CoreText/CoreText.h> @interface ViewController ( ...

  5. Leetcode题库——3.无重复字符的最长子串

    @author: ZZQ @software: PyCharm @file: lengthOfLongestSubstring.py @time: 2018/9/18 20:35 要求:给定一个字符串 ...

  6. ubuntu下安装lamp环境

    使用普通用户来安装lamp环境: 1.安装apache: sudo apt-get install apache2

  7. SpringBoot(五)_表单验证

    SpringBoot(五)_表单验证 参数校验在我们日常开发中非常常见,最基本的校验有判断属性是否为空.长度是否符合要求等,在传统的开发模式中需要写一堆的 if else 来处理这些逻辑,很繁琐,效率 ...

  8. matlab gradient 和 prctile

    介绍两个matlab小函数: 1.gradient 借用别人的例子:例:>> x=[6,9,3,4,0;5,4,1,2,5;6,7,7,8,0;7,8,9,10,0]x =     6  ...

  9. JAVAScript对象及初始面向对象

              javaScript对象及初始面向对象 1:内置对象 例:Date String Array 类等... 2:自定义对象 方法1:var newObj=new Object(); ...

  10. P3835 【模板】可持久化平衡树

    题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作(对于各个以往的历史版本): 插入x数 删除x数(若有多个相同的数,因只删除一个,如果没有请忽略该操作) 查询x数的 ...