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)