python常见模块之collections模块
一、模块简介
在内置数据类型(dict、list、set、tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter、deque、defaultdict、namedtuple和OrderedDict等。 .namedtuple: 生成可以使用名字来访问元素内容的tuple .deque: 双端队列,可以快速的从另外一侧追加和推出对象 .Counter: 计数器,主要用来计数 .OrderedDict: 有序字典 .defaultdict: 带有默认值的字典
二、模块主要功能
1.namedtuple: 生成可以使用名字来访问元素内容的tuple
from collections import namedtuple
Tup = namedtuple('name','x,y')
t1 = Tup(,)
print(t1) # name(x=, y=)
print(t1.x) #
print(t1.y) #
注意:(queue不是collections模块里的,在deque之前我们先来看一下queue)
queue: 队列,里面可以存着好多值,只能往里面放值或者往外拿出,不能修改不能查看,而且先拿出的一定是最先放进去的
import queue q = queue.Queue()
q.put()
q.put()
q.put() print(q.get())
print(q.get())
print(q.get())
2.deque: 双端队列,可以快速的从另外一侧追加和推出对象
from collections import deque
q = deque()
q.append(1)#从后端插入值
q.appendleft(2)#从前面插入值
q.insert(1,4) #在指定索引位置插入值
q.pop()#从后往前取值
q.popleft()#从前面取值
3.OrderedDict: 有序字典
python中常规字典是无序的,每次查看位置都会不一样,而如果需要创建一个有序的字典就要用OrderedDict了。
需要注意的是,OrderedDict虽然有序,但是也不能通过下标索引来找到元素
from collections import OrderedDict
dic = OrderedDict([('k1',1),('k2',2),('k3',3)])
print(dic) #OrderedDict([('k1', 1), ('k2', 2), ('k3', 3)])
print(dic['k2']) #
for i in dic:
print(i)
# k1
# k2
# k3
4.defaultdict: 带有默认值的字典
可以为字典指定一个默认值,默认值可以是列表,字典等一切可以被调用的对象
from collections import defaultdict
dic1 = defaultdict(list) #创建一个字典,每个键所对应的值都是一个列表
print(dic1['k1'])
dic2 = defaultdict(dict) #创建一个字典,每个键所对应的值都是一个字典
print(dic2['k1'])
dic3 = defaultdict(lambda:5) #创建一个字典,每个键所对应的值都是5 (不能直接写5,因为括号内是能被调用的)
print(dic2['k1'])
三、应用实例
# 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
# 即: {'k1': 大于66 , 'k2': 小于66}
from collections import defaultdict
l = [11,22,33,44,55,66,77,88,99,90]
dic = defaultdict(list)
for i in l:
if i>66:
dic['k1'].append(i)
elif i<66:
dic['k2'].append(i)
print(dic) #defaultdict(<class 'list'>, {'k1': [77, 88, 99, 90], 'k2': [11, 22, 33, 44, 55]})
python常见模块之collections模块的更多相关文章
- python的常用模块之collections模块
python的常用模块之collections模块 python全栈开发,模块,collections 认识模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文 ...
- Python 常用模块(1) -- collections模块,time模块,random模块,os模块,sys模块
主要内容: 一. 模块的简单认识 二. collections模块 三. time时间模块 四. random模块 五. os模块 六. sys模块 一. 模块的简单认识 模块: 模块就是把装有特定功 ...
- Python 入门之 内置模块 -- collections模块
Python 入门之 内置模块 -- collections模块 1.collections -- 基于Python自带的数据类型之上额外增加的几个数据类型 from collections 在内 ...
- 模块二之序列化模块以及collections模块
模块二之序列化模块以及collections模块 一.序列化模块 json模块 ''' 序列化:将python或其他语言的数据类型转换成字符串类型 json模块: 是一个序列化模块. json: 是一 ...
- Python常用数据结构之collections模块
Python数据结构常用模块:collections.heapq.operator.itertools collections collections是日常工作中的重点.高频模块,常用类型由: 计数器 ...
- 《Python》常用模块之collections模块
内置的数据类型: int float complex str list tuple dict set 基础数据类型: int float complex str list tuple ...
- python基础学习笔记——collections模块
在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict.namedtuple和Ord ...
- 常用模块(collections模块,时间模块,random模块,os模块,sys模块,序列化模块,re模块,hashlib模块,configparser模块,logging模块)
认识模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的 ...
- 模块—— 序列化模块、random模块、os模块 、 sys模块、hashlib模块、collections模块
今天我们来说说Python中的模块: 第三方模块 可以下载/安装/使用 第一步:将pip.exe 所在的目录添加到环境变量中第二步:输入pip第三步:pip install 要安装的模块名称 #pi ...
随机推荐
- HTTP认证机制
HTTP的询问/应答机制 如下图: 一个实例的图: 1.客户端请求资源 2.服务器对用户进行询问,在WWW-Authenticate首部中指明在哪里,如何进行认证 3.客户端会在Authenticat ...
- ajax请求的data数据格式
ajax提交data类型 一.问题来源 今天使用ajax时,发现get传data时,传递json字符串时传不过去参数,所以做了一些实验测试ajax的get和post的传递data时的不同. 二.概念 ...
- 什么是ETag
ETag 是 Entity Tag 的缩写,中文译过来就是实体标签的意思.在HTTP1.1协议中其实就是请求HEAD中的一个属性而已. HTTP/1.1 200 OK Date: Mon, 23 Ma ...
- IE首页被篡改(手动修复)
所谓手动修复,即以不变应万变,修改注册表,其实工具软件也只是帮你代工而已. win + R 打开 “运行”,键入 “regedit.exe” 打开注册表编辑器,在 路径 HKEY_LOCAL_MACH ...
- linux学习笔记12--命令less
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大.less 的用法比起 more 更加的有弹性.在 more 的时候,我们并没有办法向前面翻 ...
- 设置MATLAB中Current Folder的默认文件夹(转载)
设置MATLAB中Current Folder的默认文件夹 在我们使用MATLAB的过程中,其Current Folder面板会给我们带来一定的便利性.但遗憾的是,MATLAB自身没有提供友好的设置界 ...
- (转)Python爬虫学习笔记(2):Python正则表达式指南
以下内容转自CNBLOG:http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html 1. 正则表达式基础 1.1. 简单介绍 正则表达式并 ...
- js利用时间戳动态显示系统时间距指定时间的时间差
function dateTimes(times) { var d = new Date(times * 1000); var date = (d.getFullYear()) + "-&q ...
- Cmake实现样例
多目录工程的CmakeLists.txt编写(自动添加多目录下的文件) http://www.cnblogs.com/chengxuyuancc/p/5347646.html 实现类似于vs中工程的C ...
- 无状态会话Bean、有状态会话Bean、CMP与BMP中,哪一种Bean不需要自己书写连接数据库的代码?
无状态会话Bean.有状态会话Bean.CMP与BMP中,哪一种Bean不需要自己书写连接数据库的代码? A.无状态会话Bean B.有状态会话Bean C.CMP D.BMP 解答:C