zoukankan      html  css  js  c++  java
  • python(13)——lambda表达式

    ambda表达式是一种简洁格式的函数。该表达式不是正常的函数结构,而是属于表达式的类型。 

    基本格式:

    lambda 参数,参数...:函数功能代码
    如:lambda x,y:x + y    获取2个值的和的lambda函数

    带分支格式:

    lambda 参数,参数... :值1  if 条件表达式  else 值2
    如:lambda sex : '有胡子' if sex == 'man' else '没胡子'

    调用函数格式:

    lambda 参数,参数...:其他函数(...)
    如:lambda x:type(x)

    lambda表达式的优缺点:

    优点:
        书写简单不需要def关键字
        不需要费脑子想函数名(匿名函数)看起来高大上!
    
    缺点:
        lambda表达式功能受限,无法使用循环和多项分支
        复杂的操作,不适合lambda表达式

    示例
    #方式1.声明一个简单的lambda表达式
    mylamb = lambda x,y:x+y
    #调用函数
    result = mylamb(4,5)
    print(result)
    
    #方式2.声明一个带有分支的lambda表达式
    mylamb= lambda sex : '有胡子' if sex == 'man' else '没胡子'
    #调用函数
    result = mylamb('woman')
    print(result)
    
    #方式3.声明一个调用函数的lambda表达式
    mylamb = lambda x:type(x)
    #调用函数
    result = mylamb('拾元')
    print(result)
    
    
    #使用列表推导式,制作所有99乘法表中的运算
    
    lists1 = [1,2,3,4,5,6,7,8,9]
    
    #利用元字符输出结果
    result = ['%d*%d=%2d'%(j,i,i*j) for i in lists1 for j in lists1 if j <= i]
    print(result)
    
    
    #字符串输出结果
    result = [str(j) + '*' + str(i) + '=' + str(i*j) for i in lists1 for j in lists1 if j <= i]
    print(result)
    
    
    
  • 相关阅读:
    Spring Controller 获取请求参数的几种方法
    JSP ajax跨域问题 怎么处理 原因:CORS 头缺少 'Access-Control-Allow-Origin')。 ajax http 415
    仿微信滑动返回
    App重新启动
    NetWorkUtils
    ProgressWheel
    没有系统头部的dialog
    仿微信添加触摸图片阴影效果
    循环滚动TextView
    java 分割字符串后放入List中
  • 原文地址:https://www.cnblogs.com/w-yumiao/p/8282943.html
Copyright © 2011-2022 走看看