python类库常用工具

本文记录一些很有用的但是在关键时刻又容易忘记的工具。

lru_cache

lrucache是定义在functools包当中的装饰器,可以使得函数可以缓存曾经执行的结果。

用法如下:

@functools.lru_cache(maxsize = 128,typed = False)
def fib(n):
    return fib(n - 1) + fib(n - 2) if n > 2 else n

maxsize和typed是可选参数,maxsize制定了可以缓存多少个结果,为了更好的性能,maxsize一般是2的指数。typed如果设置为区别对待不同的参数类型,比如1和1.0,会被认为是不同的。

zip_longest

用法:

itertools.zip_longest(self,other,fillvalue=0.0)

copy

浅负责和深复制,对所有的对象适用,用法如下:

from copy import copy,deepcopy
a1 = copy(a)
b1 = deepcopy(b)