Python基础(collections)

Python中还有一些针对现有数据类型的补充类型(collections模块)

collections模块包含多种数据结构的实现,扩展了其他模块中相应的结构。

collections是Python内建的一个集合模块,提供了许多有用的集合类。

1、计数器(Counter)

功能:用于计算每个元素出现的个数

>>> from collections import Counter

>>> Counter([1,2,2,3])    #统计列表中每个元素的出现个数

Counter({2: 2, 1: 1, 3: 1})

>>> Counter((1,2,2,3))    #统计元组中每个元素的出现个数

Counter({2: 2, 1: 1, 3: 1})

>>> Counter(‘1223‘)      #统计字符串中每个元素的出现个数

Counter({‘2‘: 2, ‘1‘: 1, ‘3‘: 1})

2、有序字典(OrderedDict)

功能:和字典(dict)的用法一样,不同的是它会按照key的添加顺序来对key进行排序。

>>> from collections import OrderedDict

>>> li=[(‘a‘,‘1‘),(‘b‘,‘2‘),(‘c‘,‘3‘)]

>>> dict(li)    #把一个列表类型转换为字典类型

{‘a‘: ‘1‘, ‘c‘: ‘3‘, ‘b‘: ‘2‘}

>>> OrderedDict(li) #把一个列表类型转换为有序字典类型

OrderedDict([(‘a‘, ‘1‘), (‘b‘, ‘2‘), (‘c‘, ‘3‘)])

3、默认字典(defaultdict)

功能:和字典(dict)的用法一样,不同的是它会为字典里面的value设置一个默认数据类型和默认值

>>> from collections import defaultdict

>>> mydict=defaultdict(list)        #定义一个默认字典,value的默认数据类型为列表

>>> mydict

defaultdict(<type ‘list‘>, {})       #可以看到字典为空

>>> mydict[‘k1‘]              #查询一个不存在的key

[]                     #返回key的默认值

>>> mydict

defaultdict(<type ‘list‘>, {‘k1‘: []})    #查询的key不存在,则会创建该key,value为默认值

>>> mydict[‘k1‘].append(‘a‘)        #值拥有默认数据类型所拥有的方法

>>> mydict

defaultdict(<type ‘list‘>, {‘k1‘: [‘a‘]})

4、可命名元组(namedtuple)

功能:与元组(tuple)的用法一样,不同的是它会为元组中的每个元素设置一个名称

>>> from collections import namedtuple

>>> newtuple=namedtuple(‘Mytuple‘,[‘x‘,‘y‘])

>>> t=newtuple(1,2)

>>> t

Mytuple(x=1, y=2)

>>> t.x

1

>>> t.y

2

5、双向队列(deque)

功能:两端都可以操作,且线程安全的序列。(线程安全就是说多线程访问同一代码,不会产生不确定的结果)

>>> from collections import deque

>>> q=deque()

>>> q.append(1)

>>> q.append(2)

>>> q.append(3)

>>> print q

deque([1, 2, 3])

>>> q.pop()

3

>>> print q

deque([1, 2])

>>> print q[-1]

2

>>> print q

deque([1, 2])

>>> print q[0]

1

时间: 2024-08-27 23:54:25

Python基础(collections)的相关文章

Python基础 collections模块

collections模块 collections模块在内置数据类型(dict.list.set.tuple)的基础上,还提供了几个额外的数据类型:ChainMap.Counter.deque.defaultdict.namedtuple和OrderedDict等. 1.namedtuple: 生成可以使用名字来访问元素内容的tuple子类2.deque: 双端队列,可以快速的从另外一侧追加和推出对象3.Counter: 计数器,主要用来计数4.OrderedDict: 有序字典5.defaul

Python之路【第二篇】:Python基础(一)

Python之路[第二篇]:Python基础(一) 入门知识拾遗 一.作用域 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. 1 2 3 if 1==1:     name = 'wupeiqi' print  name 下面的结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 1 result = 值1 if 条件 else 值2 如果条件为真:result = 值1如果条件为假:result = 值2 三.进制 二进制,01 八进

Python基础教程【读书笔记】 - 2016/7/31

希望通过博客园持续的更新,分享和记录Python基础知识到高级应用的点点滴滴! 第十波:第10章  充电时刻 Python语言的核心非常强大,同时还提供了更多值得一试的工具.Python的标准安装包括一组模块,称为标准库standard library.展示这些模块的工作方式,讨论如何分析它们,学习它们所提供的功能. [10.1] 模块 已经知道如何创建和执行自己的程序,也学会了怎么用import从外部模块获取函数并且为自己的程序使用.接下来看看怎么编写自己的模块. [10.1.1] 模块是程序

Python基础教程(第十章 自带电池)

本文内容全部出自<Python基础教程>第二版,在此分享自己的学习之路. ______欢迎转载:http://www.cnblogs.com/Marlowes/p/5459376.html______ Created on Marlowes 现在已经介绍了Python语言的大部分基础知识.Python语言的核心非常强大,同时还提供了更多值得一试的工具.Python的标准安装中还包括一组模块,称为标准库(standard library).之前已经介绍了一些模块(例如math和cmath,其中包

Python总结:Python基础(一)

Python之路[第二篇]:Python基础(一) 入门知识拾遗 一.作用域 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. 1 2 3 if 1==1:     name = 'wupeiqi' print  name 下面的结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 1 result = 值1 if 条件 else 值2 如果条件为真:result = 值1如果条件为假:result = 值2 三.进制 二进制,01 八进

Python基础篇(八)

key words:私有变量,类静态变量,生成器,导入Python模块,r查看模块可以使用的函数,查看帮助信息,启动外部程序,集合,堆,时间模块,random模块,shelve模块,文件读取等 >>> class Rectangle: ...     def __init__(self): ...         self.__width = 0 ...         self.__height = 0 ...     def setSize(self,width,height): .

每天学点Python之collections

每天学点Python之collections collections模块在内置数据类型(dict.list.set.tuple)的基础上,提供了几个额外的数据类型:ChainMap.Counter.deque.defaultdict.namedtuple和OrderedDict等. ChainMap ChainMap是python3的新特性,它用来将多个map组成一个新的单元(原来的map结构仍然存在,类似于这些map被存在了一个list之中),这比新建一个map再将其他map用update加进

[转载]Python 3 collections.defaultdict() 与 dict的使用和区别

文章转自: http://www.cnblogs.com/herbert/archive/2013/01/09/2852843.html Python 3 collections.defaultdict() 与 dict的使用和区别 在Python里面有一个模块collections,解释是数据类型容器模块.这里面有一个collections.defaultdict()经常被用到.主要说说这个东西. 综述: 这里的defaultdict(function_factory)构建的是一个类似dict

《Python基础教程(第二版)》学习笔记 -&gt; 第十章 充电时刻 之 标准库

SYS sys这个模块让你能够访问与Python解释器联系紧密的变量和函数,下面是一些sys模块中重要的函数和变量: 函数和变量 描述 argv 命令行参数,包括脚本和名称 exit([arg])                退出当前的程序,可选参数为给定的返回值或者错误信息 modules 映射模块名字到载入模块的字典 path 查找模块所在目录的目录名列表 platform 平台标识符 stdin 标准输入流-- 一个类文件对象 stdout 标准输出流-- 一个类文件对象 stderr

Day4 - Python基础4 迭代器、装饰器、软件开发规范

Python之路,Day4 - Python基础4 (new版) 本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 孩子,我现在有个需求,看列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],我要求你把列表里的每个值加1,你怎么实现?你可能会想到2种方式 >>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>