lambda & 三元运算

lambda:

 1 >>> def add(x,y):           #定义一个加法函数
 2     return x+y              #返回两个参数的相加的值
 3 
 4 >>> z=f(3,4)                
 5 >>> print(z)
 6 7                                     #调用加法函数返回7
 7 >>> lambda x,y:x+y
 8 <function <lambda> at 0x0000020F385B86A8>    
 9 #可以看到lambda是一个   function(函数)类对象
10 >>> f=lambda x,y:x+y          #功能实现的跟add(x,y)一样        
11 >>> f(1,2)
12 3
13 >>> f(3,4)
14 7
15 >>> def multiply(x,y):
16     return x*y
17 
18 >>> multiply(3,4)
19 12
20 >>> multiply=lambda x,y:x*y
21 >>> multiply(3,4)
22 12
23 >>> def subtract(x,y):
24     return x-y
25 
26 >>> subtract(3,4)
27 -1
28 >>> subtract=lambda x,y:x-y
29 >>> subtract(3,4)
30 -1
31 
32 >>> def divide(x,y):
33     return x/y
34 
35 >>> divide(4,2)
36 2.0
37 >>> divide=lambda x,y:x/y
38 >>> divide(4,2)
39 2.0
40 
41 #上面的乘法函数,减法函数,除法函数都可以用lambda表达式来代替,更方便

1、上面可以看出lambda表达式可以很方便的用来代替简单的函数

三元表达式:

2、下面来看看什么是三元运算,python的三元运算格式如下:

result=值1 if x<y else 值2 这个是什么意思呢,就是结果=值1 if 条件1 else 值2

语法如下:

result = x if condition else y
>>> def f(x,y):                             
    return x - y if x>y else abs(x-y)  
#如果x大于y就返回x-y的值 ,否则就返回x-y的绝对值

>>> f(3,4)      #3<4,不满足if 条件,它返回else里面的绝度值
1
>>> f(4,3)
1
>>> def f(x,y):
    return 1 if x>y else -1   
#如果x大于y就返回x-y的值 ,否则就返-1
>>> f(3,4)     #3小于4 , 返回-1
-1
>>> f(4,3)      #4大于3,返回1
1
>>> 

看起来有点别扭,实际上还可以这样写:


result = (x, y)[condition]

# result = (x, y)[condition]
a = 1
b = 2
result = (a, b)[a < b]
# 成立返回第二个
print(result)

result = (a, b)[a > b]
# 不成立返回第一个
print(result)

lambda & 三元运算的更多相关文章

  1. Day 7 :一句话Python(匿名函数-lambda,三元运算,列表表达式,生成器表达式)

    注意: 1.所有的列表表达式都可以转换成生成器表达式 2.经量让标傲世简化你得操作,增加代码可读性 3.如果代码过于复杂,应该转换成普通代码 4.再代码中尽可能多使用生成器表达式. 三元运算符:简化代 ...

  2. 三元运算与lambda表达式

    #三元运算,就是对if else的简写 if 1 == 1: print("jasper") else: print("sb") 三元运算写法 name=&qu ...

  3. python_way,day3 集合、函数、三元运算、lambda、python的内置函数、字符转换、文件处理

    python_way,day3 一.集合 二.函数 三.三元运算 四.lambda 五.python的内置函数 六.字符转换 七.文件处理 一.集合: 1.集合的特性: 特性:无序,不重复的序列 如果 ...

  4. 三元运算+lambda表达式

    #三元运算,三目运算,if else简写 if 1 == 1: name = "liangml" else: name = "NB" #如果 1==1 成立,n ...

  5. 三元运算和lambda表达式

      19.三目运算,三元运算:     if else 的简写: name = 'alex' if 1 == 1 else 'SB'   ==> 等价于      if 1 == 1:     ...

  6. Python之路第三天,基础(3)-set,函数,内置函数,文件,三元运算,lambda

    set集合 集合是一个无序的,不重复的元素集合. 集合的创建: name_set = {'tom','jerry','alex','rose'} 或 name_set = set(['tom','je ...

  7. 第三天 函数 三元运算 lambda表达式 内置函数 文件操作

    面向过程: 直接一行一行写代码,遇到重复的内容复制黏贴. 不利于代码阅读 代码没有复用 面向对象 将代码块定义为函数,以后直接调用函数 增强了复用性 函数的定义方法 def 函数名(传递参数): 函数 ...

  8. 三元运算&匿名函数lambda

    lambda # 语法: # 参数 : 返回值 # 1.不带参数的lambda表达式 def func(): return '开挂的人生不需要解释' func = lambda : '开挂的人上不需要 ...

  9. python lambda表达式与三元运算

    1.三元运算 格式: 为真时的结果 if 判定条件 else 为假时的结果 #!/usr/bin/python # -*- coding: UTF-8 -*- def f(x, y): # 如果x大于 ...

随机推荐

  1. 使用js来执行全屏

    当用户按下F11事件,浏览器为触发自身全屏功能,这个过程我们一般是不可控制的,即使是监听了F11的键盘事件,退出全屏的时候,我们也捕捉不到退出全屏触发的事件.所以,我们就用程序自己去实现F11的功能, ...

  2. jQueryMobile(一)

    一].jQuery Mobile 页面 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta ...

  3. While, DoWhile in WorkFlow.

    On 03/03/2010, in 4.0, WF, by bcakiroglu While Activity In a While activity, the activity in the Bod ...

  4. 如何找到Android app启动activity和页面元素信息

    在实施app自动化的时候,我们需要知道app 的启动activity和页面元素信息,以此启动app和定位页面元素,那么如何在没有源码的情况下找打他们呢?当然是有好的工具啦,有Android sdk自带 ...

  5. aaS软件的必要特征分析,一定是多租户特性吗

    本篇文章讲述了SaaS软件的必要特征一定是多租户特性?对于许多小型企业来说,SaaS是采用先进技术的最好途径,它消除了企业购买.构建和维护基础设施和应用程序的需要 课课家教育平台提醒各位:本篇文章纯干 ...

  6. TP5.0: 显示错误信息

    在TP5中,我们运行的代码有错误无法执行时,只显示页面错误,而不显示错误信息 对我我来讲是无法接受滴!!毕竟我还是个小渣渣,查看了百度,解决方案是: 在application/config,php中找 ...

  7. Pascal之Hello World

    Pascal入门篇. 平台:Windows 7 ultimate x64 工具:Free Pascal 下载安装,界面如下: 右键属性,选择“437(OEM-美国)”,重新打开程序,乱码消失.     ...

  8. 缓存验证Last-Modifie和Etag的使用

    看这张图,是浏览器发出请求到请求缓存到过程,这么一个原理 那么http里面如何进行验证呢?主要有两个验证到http头 Last-Modified(上次修改时间) 主要配合If-Modified-Sin ...

  9. SQL随手记

    数据库改名 想要达到的效果,类似于将一个文件[复制粘贴重命名]. 0.首先得断开连接,复制一份备份.然后再连接上,进行下面的操作. 1.在树形上,选中要改名的数据库,右键重命名. 2.还是它,右键,属 ...

  10. 第2章-如何安装KEIL5—零死角玩转STM32-F429系列

    第2章     如何安装KEIL5 集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章内 ...