Python学习:常见的内建模块(1)
2016-03-14 19:37
465 查看
[0] deque双向链表,适合于大量的插入与删除.就是python帮助我们实现了这个数据结构..当然[i]也是可以用的,但是很慢.
q = deque(['a','b','c']) >>> q.appendleft('first') >>> q.append('last') >>> q deque(['first', 'a', 'b', 'c', 'last']) >>>
[1]:defaultdict,当key不存在时返回i我们设定的默认值的dict。
>>> from collections import defaultdict >>> dd = defaultdict(lambda: 'N/A') >>> dd['key1'] = 'abc' >>> dd['key1'] # key1存在 'abc' >>> dd['key2'] # key2不存在,返回默认值 'N/A'
[2]:OrderedDict,按照关键字插入的顺序进行存储.我们可以通过这个内置的类来构造一个先进先出的dict!,当超过容量时,删掉最前面的元素:
from collections import OrderedDict class FIFO_Dict(OrderedDict): def __init__(self,capcity): super().__init__() self._capcity = int(capcity) def __setitem__(self,key,value): if key in self:del self[key] elif len(self) == self._capcity : self.popitem(last = False) super().__setitem__(key,value) t = FIFO_Dict(5) t['a'] = 1 t['b'] = 2 t['c'] = 1 t['d'] = 2 t['e'] = 1 t['f'] = 2 t['g'] = 3 t['e'] = 99 print(list(t))
[3]base64模块用来将二进制数据转化成可显示的数据,下面这个代码用来解决有些解码过程会省略’=’(在url里面有特殊意义)的解码.
import base64 def safe_base64_decode(str): mod = 4 - len(str)%4 str += b'='*mod return base64.b64decode(str)
相关文章推荐
- python使用select监听非阻塞socket遇到的问题
- python小练习之将字符串转换成第一个字母大写后面字母小写的形式
- 『Python』 多线程 共享变量的实现
- 《与小卡特一起学Python》Code4 GUI easygui的使用
- 【转】Python @classmethod @staticmethod
- Windows8.1下安装theano和CUDA
- Python爬虫_自动下载图片
- python爬虫被封异常处理
- 《与小卡特一起学Python》Code3 抓取网页中的某个数据
- k-Means(二分k-均值算法)
- Python学习笔记——文件
- Python自学遇到的小问题——交互模式下程序从某句直接运行了
- python学习笔记(2)-IO编程
- Python 模块学习:os模块
- MyEclipse10配置PyDev进行Python开发
- k--Means
- python编辑器sublime
- python文件读写操作
- Python面向对象编程-封装
- python利用xmlrpc方式对odoo数据表进行增删改查操作