精华内容
下载资源
问答
  • python匿名函数Welcome to Python anonymous function tutorial. In the previous tutorial we learned about Python Recursion. 欢迎使用Python匿名函数教程。 在上一教程中,我们了解了Python递归 。 Python匿名...

    python匿名函数

    Welcome to Python anonymous function tutorial. In the previous tutorial we learned about Python Recursion.

    欢迎使用Python匿名函数教程。 在上一教程中,我们了解了Python递归

    Python匿名函数 (Python Anonymous Function)

    Python Anonymous function is a function which has no name. Therefore, we can use Python Anonymous function for a small scope of program. Normally, we define Python function using def keyword. But we define anonymous function using lambda keyword. The basic structure of an anonymous function is given below.

    Python匿名函数是没有名称的函数。 因此,我们可以在较小范围的程序中使用Python匿名函数。 通常,我们使用def关键字定义Python函数。 但是我们使用lambda关键字定义匿名函数。 匿名函数的基本结构如下。

    lambda arguments : expression

    Look closely, that while taking one or more arguments the anonymous function has only one expression. So, if we want to make a function which will calculate sum of two number. The following code will do so;

    仔细观察,匿名函数在接受一个或多个参数时 只有一个表达式 。 因此,如果我们要创建一个将计算两个数字之和的函数。 以下代码将这样做;

    def sum ( a, b ):
            return a+b
    
    print (sum(1, 2))
    print (sum(3, 5))

    But, we can convert this function to anonymous function. The code will be like this

    但是,我们可以将此函数转换为匿名函数。 代码将像这样

    sum = lambda a,b: (a+b)
    
    print (sum(1,2))
    print (sum(3,5))

    为什么要使用Python匿名函数 (Why Should We Use Python Anonymous Function)

    It may seem that we can replace an anonymous function with a regular function. Then, why should we use an anonymous function? Firstly, you may need to do a single task repeatedly across your scope. Therefore, you need a temporary function to do that. With this intension, lambda/anonymous function can help you. Because, anonymous function is valid in between the scope while a regular function is valid in the program.

    似乎我们可以用常规函数代替匿名函数。 那么,为什么要使用匿名函数呢? 首先,您可能需要在整个范围内重复执行一项任务。 因此,您需要一个临时功能来执行此操作。 有了这种内涵,lambda /匿名函数可以为您提供帮助。 因为,匿名函数在范围之间是有效的,而常规函数在程序中是有效的。

    表达或陈述 (Expression or Statement)

    The main confusion about implementing an anonymous function is, not having the ability of differentiating between an expression and a statement. Basically, a statement returns nothing while an expression produces at least one value. Simple mathematical expression like addition, multiplication, division are expressions and can be used in lambda/anonymous function. So, you have to add an expression so that the result of the expression can be returned through the lambda/anonymous function.

    关于实现匿名函数的主要困惑是,没有区分表达式和语句的能力。 基本上,一条语句不返回任何内容,而表达式产生至少一个值。 简单的数学表达式(例如加法,乘法,除法)是表达式,可以在lambda /匿名函数中使用。 因此,您必须添加一个表达式,以便可以通过lambda / anonymous函数返回表达式的结果。

    Lambda /匿名函数的一些用法 (Some Use of Lambda/Anonymous Function)

    Now, we are going to see some common use of lambda. By using map() and filter() function we can change a list using anonymous function. For example, we want increment all the numbers in a list by n. To do so, the code should be like this

    现在,我们将看到lambda的一些常用用法。 通过使用map()filter()函数,我们可以使用匿名函数更改列表。 例如,我们希望将列表中的所有数字增加n。 为此,代码应如下所示

    #initial list
    l = [1,2,3,4,5,6,7,8]
    
    #print the initial list
    print("The initial list is: ")
    print(l)
    
    #choose n
    n = int(input('Enter the value of n: '))
    
    #increment all the values of the list by using map with help of lambda
    l = list(map(lambda x: x+n , l))
    
    #print the changed list
    print("The changed list is: ")
    print(l)

    The output will be

    输出将是

    Similarly, if we want to store the common elements of two list into new list, we can use filter. To check if the an element is in List2, we used lambda function. The example code is given below

    同样,如果要将两个列表的公共元素存储到新列表中,则可以使用过滤器。 为了检查a元素是否在List2中,我们使用了lambda函数。 示例代码如下

    #initialize list1
    list1 = [1,2,3,4,5,6,7,8]
    
    #print list1
    print("List1:", end = ' ')
    print(list1)
    
    #intialize list2 for select numbers
    list2 = [2,3,5,9,12,14]
    
    #print list2
    print("List2:", end = ' ')
    print(list2)
    
    '''
    compare using lambda function if the value is in list2, if yes then filer the result and assign to list3
    '''
    list3 = list(filter(lambda x: x in list2 , list1))
    
    #print the changed list
    print"List3 (List1 intersect List2 ):", end=' ')
    print(list3)

    The output of the above program will be

    上面程序的输出将是

    So, that’s all about Python Anonymous Function. Hope that, Python Anonymous Function is clear to you now. For any further query, feel free to use the comment box. Good Luck!

    所以,这一切都与Python匿名函数有关。 希望Python匿名函数现在对您很清楚。 对于任何其他查询,请随时使用注释框。 祝好运!

    翻译自: https://www.journaldev.com/14288/python-anonymous-function

    python匿名函数

    展开全文
  • python 匿名函数

    2021-04-04 03:55:08
    关于python 匿名函数 匿名函数: 没有的名字的函数就是匿名函数,lambda和普通的函数相比,就是省去了函数名称而 已,同时这样的匿名函数,又不能共享在别的地方调用。 使用Python写一些执行脚本时,使用lambda...

    关于python 匿名函数

    匿名函数:
    没有的名字的函数就是匿名函数,lambda和普通的函数相比,就是省去了函数名称而 已,同时这样的匿名函数,又不能共享在别的地方调用。

    1. 使用Python写一些执行脚本时,使用lambda可以省去定义函数的过程,让代码更加精简。

    2. 对于一些抽象的,不会别的地方再复用的函数,有时候给函数起个名字也是个难题,使用lambda不需要考虑命名的问题。

    3. 使用lambda在某些时候让代码更容易理解。

    function 函数名(参数){
     函数体
     return 返回值
    }
    function (参数){
     函数体
     return 返回值
    }
    def 函数名(参数):
    #缩进 函数体
    
    lambda ---------- 箭头函数(javaScript)
    lambda: 代码 
    

    1. 匿名函数和普通函数的对比

    #求三个数和
    def sum(a,b,c):
    return a+b+c
    sum_lambda = lambda a,b,c : a+b+c
    print(sum(2,3,4))
    print(sum_lambda(2,3,4))
    

    2.匿名函数的参数
    无参数:

    lambda_a = lambda:100
    print(lambda_a())
    

    一个参数
    多个参数
    表达式分支

    lambda_b = lambda x : x if x % 2 == 0 else x+2
    print(lambda_b(6))
    print(lambda_b(7))
    

    3.作为一个参数传递

    def func(a,b,func):
    print("a=",a)
    print("b=",b)
    print("a-b=",func(a,b))
    func(100,1,lambda a,b:a-b)
    
    1. 作为函数的返回值
    def func(a,b):
    return lambda c : a+b+c
    return_func = func(1,1000) #匿名函数 lambda c : a+b+c
    print(func)
    print(return_func)
    print(return_func(100)) #调用return_funct()
    
    展开全文
  • Python匿名函数

    2020-12-21 20:49:28
    所以我们发现:匿名函数的使用和普通的函数其实是一样的,唯一的区别就是在于普通函数往往用来去处理一些比较复杂的程序逻辑,而匿名函数则仅仅是处理功能非常简单的逻辑。 匿名函数的语法是这样的: lambda 参数...
  • Python 匿名函数

    2019-06-30 19:56:05
    Python 匿名函数 一、匿名函数概述: 在Python中,除了def定义的函数外,还有一种使用lambda定义的匿名函数。它可以用在任何普通函数可以使用的地方,但在定义时被严格限定为单一表达式。 二、简单使用: 在Python中...

    Python 匿名函数

    一、匿名函数概述:

    在Python中,除了def定义的函数外,还有一种使用lambda定义的匿名函数。它可以用在任何普通函数可以使用的地方,但在定义时被严格限定为单一表达式

    二、简单使用:

    在Python中,我们使用def语句来定义函数:

    举个栗子:

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

    除了上面定义函数外,Python还提供了一个关键字lambda,简单理解就是没有名称的函数:

    举个栗子:

    lambda x,y: x+y
    
    • 关键字lambda说明它是一个匿名函数,冒号:前面的变量是该匿名函数的参数,冒号:后面的是函数的返回值
    • 注意:这里不使用return关键字,进行函数的返回值

    三、函数调用:

    最直接的调用:

    (lambda x: x + 3)(3)
    # 输出结果:6
    

    匿名函数本质上是一个函数对象,也可以将其赋值给另一个变量,再由该变量来调用函数:

    f = lambda x: x + 3
    f
    # 输出结果:<function __main__.<lambda>>
    f(3)
    # 输出结果:6
    

    四、使用场景:

    不使用匿名函数的写法:

    def func(func, my_list):
        """创建一个函数: func参数也是一个函数, my_list 参数是一个列表"""
        return [func(item) for item in my_list]
    
    
    def add(x):
        """普通的加法"""
        return x + 1
    
    
    result = func(add, [1, 2, 3, 4, 5])
    print result
    # 输出结果:[2, 3, 4, 5, 6]
    

    使用匿名函数的写法:

    def func(func, my_list):
        """创建一个函数: func参数也是一个函数, my_list 参数是一个列表"""
        return [func(item) for item in my_list]
    
    result = func(lambda item: item + 1, [1, 2, 3, 4, 5])
    print result
    # 输出结果:[2, 3, 4, 5, 6]
    

    使用if/else

    (lambda x, y: x if x < y else y)(1, 2)
    # 输出结果:1
    f = lambda x, y: x if x < y else y
    f(1, 2)
    # 输出结果:1
    

    递归

    f = lambda func, n: 1 if n == 0 else n * func(func, n - 1)
    f(f, 3)
    # 输出结果:6
    

    五、总结:

    匿名函数本质上是一个函数,没有函数名称,因此使用匿名函数不用担心函数名冲突

    匿名函数一般适用于创建一些函数逻辑简单

    展开全文
  • python匿名函数

    2018-03-18 13:42:00
    python匿名函数 一、匿名函数介绍 匿名函数就是不需要显式的指定函数名,匿名函数支持得最复杂的运算就是三元运算。 匿名函数作用: 1、节省代码量 2、看起来比较高级 # 示例一: def ...

    python匿名函数

    一、匿名函数介绍

    匿名函数就是不需要显式的指定函数名匿名函数支持得最复杂的运算就是三元运算。

    匿名函数作用:
      1、节省代码量
      2、看起来比较高级

    # 示例一:
    def calc(x,y):
        return x*y
    
    # 将上述一般函数改写为匿名函数:
    lambda x,y:x*y
    
    func = lambda x,y:x*y    # 声明一个匿名函数并赋值给func
    print(func(3,8))       # 输出结果为24
    # 示例二:
    # 将复杂函数改写为匿名函数
    def calc(x,y):
        if x < y:
            return x*y
        else:
            return x/y
    print(calc(16,8))
    # 将上述函数转化为匿名函数,匿名函数支持得最复杂的运算就是三元运算。
    
    func1 = lambda x,y: x*y if x < y else x/y     # 转换为三元运算形式的匿名函数
    print(func1(16,8))

    二、匿名函数运用

    data = list(range(10))
    print(data)
    
    # 方法一:
    for index,i in enumerate(data):
        data[index] = i*i
    print(data)
    
    # 方法二:
    def f2(n):
        return n*n
    print(list(map(f2,data)))
    
    # 方法三:
    print(list(map(lambda x:x*x,data)))   # map函数和匿名函数运用,用一次就不用了因此无须定义函数
    

     

    posted @ 2018-03-18 13:42 休耕 阅读(...) 评论(...) 编辑 收藏
    展开全文
  • 在以下的文章之中我们来了解一下什么是python匿名函数。了解一下关于python匿名函数的知识,以及python匿名函数的好处。好了,废话不多说,我们开始进入接下来的文章吧。匿名函数python 使用 lambda 来创建匿名函数...
  • 本文实例讲述了python匿名函数及应用。分享给大家供大家参考,具体如下:lambda关键词能创建?型匿名函数。这种函数得名于省略了def声明函数的标准步骤。代码如下:#定义lambda函数sum = lambda arg1,arg2:arg1+arg2#...
  • 本文实例讲述了python匿名函数用法。分享给大家供大家参考,具体如下:匿名函数特点:1.只能有一个表达式2.不用return,默认return结果3.不需要名字,防止函数名重复4.是对象,可赋值给一个变量经典例子>>>...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,753
精华内容 3,501
关键字:

python匿名函数

python 订阅