美文网首页
python的内建函数map filter reduce z

python的内建函数map filter reduce z

作者: EDG不是本地g | 来源:发表于2018-09-29 17:38 被阅读0次

    lambda 

    大概意思就是

    def add(x,y):return x+y

    改写成 lambda x,y :x+y简单的函数的时候  省略函数名和return


    map

    class map(object)

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

    map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。

    Iterator是惰性序列,因此通过list()函数让它把整个序列都计算出来并返回一个list。

    eg

    >>> r = map(lambda x:x*x, [1,2,3,4,5,6,7,8,9])

    >>> list(r)

    [1,4,9,16,25,36,49,64,81]


    reduce

    reduce(...)

        reduce(function, sequence[, initial]) -> value

     这里的参数  是 一个函数 一个序列 一个初始值, 中括号的意思是 初始值可以省略。

    reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

    from  functools import reduce

    DIGITS = {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}

    def  char2num(s):

            return DIGITS[s]

    def  str2int(s):

            return  reduce(lambda x, y: x *10+ y, map(char2num, s))


    filter

    class filter(object)

             filter(function or None, iterable) --> filter object

    和map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

    注意到filter()函数返回的是一个Iterator,也就是一个惰性序列,所以要强迫filter()完成计算结果,需要用list()函数获得所有结果并返回list。

    def not_empty(s):

            return s and s.strip()

    list (filter (not_empty, ['A','','B', None, 'C', ' ']))

    结果当然就是 ['A', 'B', 'C']

    感觉这个 not_empty 函数还是挺有趣的,傻傻的我- -。


    zip

    class zip(object)

    zip(iter1 [,iter2 [...]]) --> zip object

    eg1:基本用法

    for i in  zip((1,2,3),(4,5,6)):

        print(i)

    结果

    (1,4)

    (2,5)

    (3,6)

    eg2:改变字典 key和value的对调

    dicta={'a':'aa','b':'bb'}     #定义一个字典a

    dictb=zip(dicta.values(),dicta.keys())   #用zip方法进行对调

    print(dictb)

    <zip object at 0xhgkjahgka>     #输出得到一个zip类型  我瞎j8写的

    print(dict(dictb))        #类型转换

    {'aa':'a','bb':'b'}      #对调成功 

    相关文章

      网友评论

          本文标题:python的内建函数map filter reduce z

          本文链接:https://www.haomeiwen.com/subject/iphboftx.html