zoukankan      html  css  js  c++  java
  • Python之Lambda与三元运算

    Python之Lambda与三元运算

    Lambda 运算

    概念:是指一类无需定义标识符(函数名)的函数或者子程序。
    特点:匿名函数不使用def定义函数,使用lambda来创建匿名函数
    1.lambda只是一个表达式,函数体比def简单
    2.lambda的主体是一个表达式,而不是一个代码块,仅仅只能在lambda表达式中封装简单的逻辑
    3.lambda函数有自己的命名空间,且不能访问自由参数列表之外的或全局命名的空间参数(只能用自己的参数,其他的用不了)

    lambda 语法:
    lambda 参数1,参数2,…,参数n: expression[表达式]

    sum = lambda num1, num2: num1 + num2
    print(sum(1, 2))
    输出:
    3

    Lambda表达式和if not...else用法

    #if 条件为真的时候返回if前面内容,否则返回0 
    exp1= lambda x:x+1 if  2==1 else 0 
    print(exp1(2))
    exp2 = lambda x:x+1 if  1==1 else 0 
    print(exp2(2))
    
    输出:
    0
    3
    #if not 为假返回if not前面内容,否则返回0  
    exp3 = lambda x:x+1 if not 2==1 else 0  
    print(exp3(2))  
      
    exp4 = lambda x:x+1 if not 1==1 else 0  
    print(exp4(2))
    
    输出:
    3
    0

    三元运算

    a = 1
    b = 2
    h = ""
    
    h = "变量1" if a>b else "变量2"
    
    print(h)
    # 普通条件语句
    if 1 == 1:
        name = ‘Jack Ma'
    else:
        name = ‘pony'
      
    # 三元运算
    name = ‘Jack Ma' if 1 == 1 else ' pony'
    def whoIs_richest(jackMa='alibaba', pony='tencent'):
           return 'jackMa' if len(jackMa)>len(pony) else 'pony'
    
    print(whoIs_richest())
    
    输出:
    pony
  • 相关阅读:
    51nod 1087 1 10 100 1000(找规律+递推+stl)
    51nod 1082 与7无关的数 (打表预处理)
    51 nod 1080 两个数的平方和
    1015 水仙花数(水题)
    51 nod 1003 阶乘后面0的数量
    51nod 1002 数塔取数问题
    51 nod 1001 数组中和等于K的数对
    51 nod 1081 子段求和
    51nod 1134 最长递增子序列 (O(nlogn)算法)
    51nod 1174 区间中最大的数(RMQ)
  • 原文地址:https://www.cnblogs.com/111testing/p/11914818.html
Copyright © 2011-2022 走看看