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 ...
随机推荐
- 608. Two Sum - Input array is sorted【medium】
Given an array of integers that is already sorted in ascending order, find two numbers such that the ...
- 关于http ,那些你必须知道的事
一,HTTP简介 1,HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览 ...
- NerdTree 学习
http://www.jianshu.com/p/eXMxGx--------------来自大神到博客 到现在为止我仍然不能设置<F2>开启和隐藏目录树.sangxin.
- 关于appStore不显示构建版本的问题
近日往AppStore上跟新一个版本,提交了好几次,每次都提交成功了,但是在iTunes Contacts上一直没有看到可选的构建版本,也没看到有邮件的反馈,纳闷了好久都不知道是什么鬼原因,后面发现是 ...
- shell编程sed笔记
源文件的内容 <modules> <module name="provider"> <!--发布模式--> <bds_mode/> ...
- Error occurred whiLe getting the data source contents for the report
Web service request GetDataSourceContents to Report Server http://crm-vm/reportserver/ReportService2 ...
- android最佳实践的建议(翻译自android-best-practices)
Best practices in Android development Use Gradle and its recommended project structure 使用Gradle和其推荐的 ...
- jxta-amalto
前几天在网络上搜索jxta的消息,发现jxta 2.8x已经启动了,官方地址http://chaupal.github.io/ 在浏览其邮件列表时,意外发现一老外基于jxta 2.6修改的一版, 可在 ...
- Tuning 16 Using Materialized view
物化视图表示在数据库的其他地方另外存放了一份as 后边的内容, 如果只是普通view, 那么 rowid 是相同的, view相当于指针, 它指向基表. 而物化视图的rowid 与基表是不一样的, 所 ...
- Java异常框架设计
什么是异常? 异常(exception)应该是异常事件(exceptional event)的缩写.异常定义:异常是一个在程序执行期间发生的事件,它中断正在执行的程序的正常的指令流.当在一个方法中发生 ...