美文网首页
函数式编程lambda式

函数式编程lambda式

作者: 人生苦短啊 | 来源:发表于2018-07-23 00:31 被阅读0次
    前言

    函数式编程会让程序更加简洁,更有可读性,

    三个特性

    lambda函数有如下特性:

    1. lambda函数是匿名的:所谓匿名函数,通俗地说就是没有名字的函数。lambda函数没有名字。

    2. lambda函数有输入和输出:输入是传入到参数列表argument_list的值,输出是根据表达式expression计算得到的值。

    3. lambda函数一般功能简单:单行expression决定了lambda函数不可能完成复杂的逻辑,只能完成非常简单的功能。由于其实现的功能一目了然,甚至不需要专门的名字来说明。

    map

    list_x = [1,2,3,4,5,6,7,8,9,10]
    
    def f1(x):
        return x * x
    
    ret = map(f1, list_x)
    print(list(ret))         # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    
    list_y = [1,2,3,4,5,6,7,8,9,10]
    
    ret = map(lambda x, y: x * x + y, list_x, list_y)
    print(list(ret))         # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    

    reduce

    reduce会把前两个数字相加,把得到的新数字再加后面的数字,
    有一个初始值参数

    # reduce
    
    from functools import reduce
    
    list_x = [1,2,3,4]
    
    r = reduce(lambda x,y:x+y, list_x, 10)
    print(r)      # 20
    

    filter

    filter有过滤功能

    # filter
    
    list_x = [1, 0, 1, 0, 1]
    
    r = filter(lambda x: True if x == 1 else False, list_x)
    r = filter(lambda x: x, list_x)
    print(list(r))     # [1, 1, 1]
    

    相关文章

      网友评论

          本文标题:函数式编程lambda式

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