zoukankan      html  css  js  c++  java
  • 匿名函数

     

    1、概念介绍

    python 使用 lambda 来创建匿名函数。

    lambda只是一个表达式,函数体比def简单很多。

    lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。

    lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。

    2、语法

    语法:lambda [arg1 [,arg2,.....argn]]: expression

    lambda x, y : x * y

    3、Reduce

    传给reduce中的函数func() (必须是一个二元操作函数)先对集合中的第1,2个数据进行操作,得到的结果再与第三个数据用func()函数运算,最后得到一个结果。

    from functools import reduce

    l = [1,2,3,4,5]

    print(reduce(lambda x,y: x+y, l))

    # 这里代表着,把l中的值,一个个放进lamda的x,y中

    # 如果你给出一个初始值,可以放在l后面

    print(reduce(lambda x,y: x+y, l, 10))

    # 这样,x开始的时候被赋值为10,然后依次把l中的值放进来

    4、Map

    格式:map(func, seq1[, seq2...] )

    Python函数式编程中的map()函数是将func作用于seq中的每一个元素,并用一个列表给出返回值。

    l = [1,2,3]

    new_list = list(map(lambda i: i+1, l))

    print(new_list)

    >>> [2,3,4]

    # 我们也可以把两个数组搞成一个单独的数组

    l = [1,2,3]

    l2 = [4,5,6]

    new_list = list(map(lambda x,y: x+y, l, l2))

    print(new_list)

    >>>[5, 7, 9]

    5、Filter

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

    l = [100, 20, 24, 50, 110]

    new = list(filter(lambda x: x<50, l))

    print(new)  

    >>> [20, 24]

  • 相关阅读:
    Oracle 10g R2 Transparent Data Encryption 透明数据加密
    Spark之Task原理分析
    一个Spark job的生命历程
    Spark调优秘诀——超详细
    NLP文本相似度(TF-IDF)
    Spark 参数配置的几种方法
    Spark提交应用程序之Spark-Submit分析
    spark_flume_mysql 整合
    Spark Programming Guide《翻译》
    windows下Idea结合maven开发spark和本地调试
  • 原文地址:https://www.cnblogs.com/yongfuxue/p/10036783.html
Copyright © 2011-2022 走看看