内建模块collections的使用
# -*-coding:utf-8 -*-
from collections import namedtuple
Point=namedtuple('Point',['x','y'])
p=Point(1,2)
print p.x
#1
print p.y
#2 # namedtuple是一个函数,它用来创建一个自定义的tuple对象,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素。 # 这样一来,我们用namedtuple可以很方便地定义一种数据类型,它具备tuple的不变性,又可以根据属性来引用,使用十分方便。
print isinstance(p,Point)
#True
print isinstance(p,tuple)
# True
#如果要用坐标和半径表示一个圆,也可以用namedtuple定义:
Circle=namedtuple('Circle',['x','y','z']) #使用list存储数据时,按索引访问元素很快,但是插入和删除元素就很慢了,因为list是线性存储,数据量大的时候,插入和删除效率很低
#deque 是为了高效实现插入和删除操作的双向列表,适合用于队列和栈:
from collections import deque q=deque(['a','b','c'])
q.append('x')
q.appendleft('y')
print q
# deque(['y', 'a', 'b', 'c', 'x']) #defaultdict
#使用 dict时,如果引用的key不存在,就会抛出keyError.如果希望key不存在时,返回一个默认值,就可以使用defaultdict:
from collections import defaultdict
dd=defaultdict(lambda:'N/A')
dd['key1']='abc'
print dd['key1']
# abc
print dd['key2']
# N/A #OrderedDict
#使用dict时,key是无序的,在对dict做迭代时,我们无法确定key的顺序,如果要保持key的顺序,可以用orderdict
from collections import OrderedDict d=dict([('a',1),('b',2),('c',3)]) print d
# {'a': 1, 'c': 3, 'b': 2} dict的key是无序的 od=OrderedDict([('a',1),('b',2),('c',3)])
print od
# OrderedDict([('a', 1), ('b', 2), ('c', 3)]) #注意,OrderedDict的Key 会按照插入的顺序排列,不是key本身排序:
od=OrderedDict()
od['z']=1
od['y']=2
od['x']=3
print od.keys()
# ['z', 'y', 'x'] #Counter是一个简单的计数器,例如,统计字符出现的个数:
from collections import Counter
c=Counter()
for ch in 'programming':
c[ch]=c[ch]+1 print c
# Counter({'g': 2, 'm': 2, 'r': 2, 'a': 1, 'i': 1, 'o': 1, 'n': 1, 'p': 1})
内建模块collections的使用的更多相关文章
- Python内建模块--collections
python内建模块--collections collections是Python内建的一个集合模块,提供了许多有用的集合类. namedtuple 我们知道tuple可以表示不变集合,例如,一个点 ...
- python常用内建模块 collections,bs64,struct,hashlib,itertools,contextlib,xml
# 2 collections 是Python内建的一个集合模块,提供了许多有用的集合类. # 2.1 namedtuple #tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成: p ...
- 四十二 常用内建模块 collections
collections是Python内建的一个集合模块,提供了许多有用的集合类. namedtuple 我们知道tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成: >>> ...
- python内建模块Collections
# -*- coding:utf-8 -*- # OrderedDict可以实现一个FIFO(先进先出)的dict, # 当容量超出限制时,先删除最早添加的Key: from collections ...
- python内建模块——collections模块
在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict.namedtuple和Ord ...
- python常用内建模块--collections
1.namedtuple #namedtuple是一个函数,它用来创建一个自定义的tuple对象,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素.#这样一来,我们用n ...
- Python常用内建模块
Python常用内建模块 datetime 处理日期和时间的标准库. 注意到datetime是模块,datetime模块还包含一个datetime类,通过from datetime import da ...
- Python常用的内建模块
PS:Python之所以自称“batteries included”,就是因为内置了许多非常有用的模块,无需额外安装和配置,即可直接使用.下面就来看看一些常用的内建模块. 参考原文 廖雪峰常用的内建模 ...
- python的常用内建模块与常用第三方模块
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 一.常用内置模块1.datetimePython 提供了一个 time 和 calendar 模块可 ...
随机推荐
- [POJ]代码托运站
这里暂时是空的
- python 绘图pylab
绘图 1.绘图主要通过代码来进行认知 demo: import pylab #绘图库 pylab.figure(1) #创建图一 pylab.plot([1,2,3,4],[1,2,3,4]) #在图 ...
- 100405之python程序安装
Python的安装 注意安装的path和.exe可执行文件的命名方式 例如py2或者py3 sublime的安装 一.Sublime Text 3安装(64位Windows操作系统): 1.双击 Su ...
- es6新增的数组遍历方式
1.some方法 1)some() 方法测试是否至少有一个元素通过由提供的函数实现的测试. 2)参数列表: arr.some(callback(element[, index[, array]])[, ...
- JAVA自学笔记22
JAVA自学笔记22 1.操作基本数据类型的流 DataInputStream DataOutputStream 数据输出流允许应用程序以适当方式将基本的Java数据类型写入输出流中.然后,应用程序可 ...
- poj2376 Cleaning Shifts(区间贪心,理解题意)
https://vjudge.net/problem/POJ-2376 题意理解错了!!真是要仔细看题啊!! 看了poj的discuss才发现,如果前一头牛截止到3,那么下一头牛可以从4开始!!! # ...
- Scala编程基础
Scala与Java的关系... 4 安装Scala. 4 Scala解释器的使用... 4 声明变量... 5 数据类型与操作符... 5 函数调用与apply()函数... 5 if表达式... ...
- git关联远程仓库
git init git add . git commit -m "0.0.1 release" git remote -v git remote add master repos ...
- bootstrap-table方法之:合并单元格
方法一 通过mergeCells方法 演示地址:http://issues.wenzhixin.net.cn/bootstrap-table/methods/mergeCells.html Merge ...
- 运行Keras版本的Faster R-CNN(1)
Keras版本的Faster R-CNN源码下载地址:https://github.com/yhenon/keras-frcnn下载以后,用PyCharm打开(前提是已经安装了Tensorflow-g ...