您的位置:首页 > 编程语言 > Python开发

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: