zoukankan      html  css  js  c++  java
  • Python lambda表达式简单用法

    匿名函数

    一.创建

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

    所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。

    • lambda 只是一个表达式,函数体比 def 简单很多。
    • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
    • lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
    • 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

    语法

    lambda 函数的语法只包含一个语句,如下:

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

    如下实例:

    #!/usr/bin/python3
     
    # 可写函数说明
    sum = lambda arg1, arg2: arg1 + arg2
     
    # 调用sum函数
    print ("相加后的值为 : ", sum( 10, 20 ))
    print ("相加后的值为 : ", sum( 20, 20 ))
    
    
    # 执行结果
    
    相加后的值为 :  30
    相加后的值为 :  40

    条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即:

    # 普通条件语句
    if 1 == 1:
        name = 'wupeiqi'
    else:
        name = 'alex'
      
    # 三元运算
    name = 'wupeiqi' if 1 == 1 else 'alex'

    对于简单的函数,也存在一种简便的表示方式,即:lambda表达式

    # ###################### 普通函数 ######################
    # 定义函数(普通方式)
    def func(arg):
        return arg + 1
      
    # 执行函数
    result = func(123)
      
    # ###################### lambda ######################
      
    # 定义函数(lambda表达式)
    my_lambda = lambda arg : arg + 1
      
    # 执行函数
    result = my_lambda(123)

    lambda存在意义就是对简单函数的简洁表示

    二.内置函数 

    一、map

    遍历序列,对序列中每个元素进行操作,最终获取新的序列。

    li = [11, 22, 33]
    
    new_list = map(lambda a: a + 100, li)
    for i in new_list:
        print(i)
    li = [11, 22, 33]
    sl = [1, 2, 3]
    new_list = map(lambda a, b: a + b, li, sl)

    二、filter

    对于序列中的元素进行筛选,最终获取符合条件的序列

    li = [11, 22, 33]
    
    new_list = filter(lambda arg: arg > 22, li)
    
    #filter第一个参数为空,将获取原来序列

    三、reduce

    对于序列内所有元素进行累计操作

    li = [11, 22, 33]
    
    result = reduce(lambda arg1, arg2: arg1 + arg2, li)
    
    # reduce的第一个参数,函数必须要有两个参数
    # reduce的第二个参数,要循环的序列
    # reduce的第三个参数,初始值
  • 相关阅读:
    MySQL "show users"
    MySQL
    A MySQL 'create table' syntax example
    MySQL backup
    MySQL show status
    Tomcat, pathinfo, and servlets
    Servlet forward example
    Servlet redirect example
    Java servlet example
    How to forward from one JSP to another JSP
  • 原文地址:https://www.cnblogs.com/xiaohei001/p/9781583.html
Copyright © 2011-2022 走看看