顾名思义,没有名字。适用于简单的业务逻辑
使用lambda
声明
变量 = lambda 参数 : 逻辑代码 #调用 变量(参数)
表达式1 if 条件 else 表达式2
如果条件成立,表达式1就作为整个表达式的结果,反之,表达式二为整个表达式的结果。
compare = lanbda x,y :x if x>y else y #调用 compare(8,9)
def 函数无参数
def main(): return lambda x : True if x==10 else False #传参 main()(10)
def 有参数
def main(num1,num2,num3): return lambda x : x+num1+num2+num3 #调用 total = main(10,20,30)(40)
str_list = ['Python基础', 'Java基础', 'Python爬虫', 'Java Web', ] def main(keys, func): result_list = [] for result in keys: if func(result): result_list.append(result) return result_list condition = lambda x: True if 'Python' in x else False # 调用 print(main(str_list, condition))
data = [1,2,3,4] #def函数 +map def func(n): return n+1 print(list(map(func,data))) #lambda + map print(list(map(lambda n : n+1,data)))
引入:from functools import reduce
from functools import reduce data = [1, 2, 3, 4] def func(x, y): return x + y print(reduce(func,data)) print(reduce(lambda x, y: x + y, data))
data = {'李彤':480, '苏丹':520,'王梅':340, '赵夏伟':555 } print(sorted(data.items(), key=lambda d: d[1], reverse=True))
data = [1, 2, 3, 4] print(list(filter(lambda x : x>2,data)))