一、匿名函数
# 匿名函数 lambda的命名格式 # lambda 参数列表: 表达式 # lambda parameter_list: expression
def add(x, y): return x + y
# 可以将lambda定义的匿名函数,赋值给一个变量 # 这样的话就可以像普通函数一样,但这样是没有意义的 fun = lambda x, y: x + y print(add(1, 2)) # 3 print(fun(1, 2)) # 3
二、python中的三元表达式
# python中的三元表达式 # 格式如下 # 条件为真是返回的结果 if 条件判断 else 条件为假是返回的结果 x = 1 y = 2 # 在PHP中的格式为:r = x > y ? x : y; r = x if x > y else y print(r) # 2
三、python中map()类
# python中的map类 # map(表达式(可以是一个函数), 序列) def add(x): return x ** 2 list_x = [1, 2, 3, 4, 5, 6] list_y = [1, 4, 9, 16, 25, 36, 49] # res = map(add, list_x) # 与下边相同 res = map(lambda x: x * x, list_x) print(res) # 是一个map对象<map object at 0x00000211FF7F9208> print(list(res)) # [1, 4, 9, 16, 25, 36] # 使用lambda和map传入多个参数 res1 = map(lambda x, y: x + y, list_x, list_y) # 当list_x与list_y的参数数量不想等的时候,以短的数量为准 print(list(res1)) # [2, 6, 12, 20, 30, 42]
四、python中filter()类
# python中的filter类 # 表示的是过滤器,调用表达式返回的是bool值 list_x = [1, 0, 3, 0, 5, 0] res = filter(lambda x: x, list_x) # 也可以使用三元表达式 # res = filter(lambda x: False if x == 0 else True, list_x) print(list(res)) # [1, 3, 5]
五、python中的reduce()函数
from functools import reduce # python中的reduce()函数 # 连续计算,连续调用lambda list_x = [1, 2, 3, 4, 5, 6] list_y = ['1', '4', '9', '16', '25', '36', '49'] # reduce是连续来调用的,初始的时候是x=1,y=2,在再一次调用lambda的时候 # 将第一次调用结果付给x,而y此时去序列中接下来的值 # 类似于这样:((((1+2)+3)+4)+5)+6 res = reduce(lambda x, y: x + y, list_x) print(res) # 21 res1 = reduce(lambda x, y: x + y, list_y, '**') # 第三个参数代表的是初始值 print(res1) # **14916253649
浙公网安备 33010602011771号