Python三元运算和lambda表达式

一、三元运算

  1、定义:三元运算是if-else 语句的快捷操作,也被称为条件运算。

  2、结构:

      [on_true]  if  [expression]  else  [on_false]

  3、示例:

      x,y = 3,4   # 等同于 x = 3    y = 4

      bigger = x if x>y else y

      print('结果:',bigger)    # 结果:4

  4、多层嵌套使用

    示例:

      a,b,c = 2,6,8  # 等同于 a = 2,b = 6,c = 8

      max = a if a>b and a>c else (b if b>a and b>c else c)

      print('max=',max)  # max=8

二、lambda表达式

  1、定义:lambda 函数是一种快速定义单行的最小函数,又称匿名函数,可以用在任何需要函数的地方 。

  2、结构:

      lambda 形参列表 : 函数返回值表达式语句

  3、示例:

      x = lambda a,b:a*b

      print('res=',x(2,3))     # res= 6

      注意:所谓匿名函数,也就是说可以不需要命名,只是临时一用,如下:

        print(list(map(lambda x:x*x ,[1,2,3,4])))    # map()函数可以将一个函数映射到一个可枚举类型上面。     

  4、与一般函数的区别  

#常规写法
def func(x,y):
    return x*y
print(func(2,3))

# 匿名函数写法,作用与上面的func函数相同
func1 = lambda x,y:x*y
print(func1(2,3))

  5、匿名函数,搭配其他方法使用,一次性使用

data =  list(range(10)) # range转成列表
#列表元素自乘方法
print('自乘后:',list(map(lambda n:n*n ,data))) # 自乘后: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

三、lambda表达式和三元运算搭配使用(用得很多)

  例如:

func = lambda x,y : x%y if x>y else x**y # 匿名函数结合三元运算
print(func(2,4))  # 输出: 16

    

原文地址:https://www.cnblogs.com/schut/p/8409684.html