内建函数的使用

filter(function or None, iterable) --> filter object => 返回一个生成器 是惰性求值 

例如:

     filter(lambda x :x%2==0,range(5))

filter(None,range(4)) => 0 1 2 3

filter(lambda x:x[0],zip(range(3),range(4)))=> (1,1),(2,3) #等效True a[0] = 0 is False 进不来

filter(lambda x:x % 2==0,[1,2,3,4,5,6])

 

 

map:从一种形态变成另一种形态 ,但是一直保持相同个数,返回一个生成器,惰性求值

1.map(func, *iterables) --> map object

for i in map(str,range(3)):

print i   =>0 <class 'str'>

1 <class 'str'>

2 <class 'str'>

2.map(lambda x:x**3,(1,2,3,4)) => for i in map(///) => 1 , 4, 8, 16

 map (lambda x:x%2,[1,3,4,56,7])

3.for i in map(lambda x : "{}\n".format(x),range(4)):

import inspect 

from inspect import Parameter

import inspect,_signal

# print(add.__annotations__)  #{'x': <class 'int'>, 'y': <class 'int'>, 'return': <class 'int'>}

#

# sig = inspect.signature(add) #inspect 下的签名参数 就是 def 后边的内容

# print(sig)  #

# parms = sig._parameters  查看签名参数的详细参数

# print(parms)


import  partial (偏函数)

partial(func, *args, **keywords) - new function with partial application of the given arguments and keywords.

                                def add(x,y):

return x+y

                       newadd = partial(add,y=5)  # 偏函数的用法 

nesadd(4)

from functools import lru_cache (least-recently-used)

用法 :    lru_cache(maxsize=128, typed=False)   如果type设置为True则不同类型的函数将单独缓存;例如 :f(3) 和 f(3.0) 是不同结果的缓存

    


猜你喜欢

转载自blog.51cto.com/12950054/2168969