也叫 lambda 表达式ide
a.匿名函数的核心:一些简单的须要用函数去解决的问题,匿名函数的函数体只有一行函数
b.参数能够有多个,用逗号隔开spa
c.返回值和正常的函数同样能够是任意的数据类型3d
d.匿名函数不支持复杂的逻辑判断code
e.通常跟其余函数搭配使用对象
普通函数与匿名函数的对比:blog
#普通函数 def add(a,b): return a + b print(add(2,3)) #匿名函数 add = lambda a,b : a + b # 至关与 return a+b print add(2,3) 正确用法: print((lambda a,b:a+b)(4,5))
li = list(range(10)) print(max(li, key=lambda x: li[li.index(x)]))
salaries={ 'egon':3000, 'alex':100000000, 'wupeiqi':10000, 'yuanhao':250 } # 普通函数 def get_value(k): return salaries[k] # print(max(salaries,key=get_value)) # print(min(salaries,key=get_value)) # 匿名函数 print(max(salaries,key=lambda x:salaries[x])) # 取谁的工资最大 # 先 next salaries,获得 键名,定义匿名函数 key=lamdba x:salaries[x] # lamdba x # x 是匿名函数须要的参数,由 salaries[x] 来提供,[x]里的 x 是前面获得的 键名,获得键值,经过键值来进行排序后,返回键名
data = list(range(10)) print(list(map(lambda x: x*x, data)))
str =['a','b','c','d'] def fun(s): if s != 'a': # 过滤条件,若是不等于,返回值 return s ret = filter(fun,str) # 格式:filter(函数名,序列),遍历序列 print(list(ret)) #['b', 'c', 'd'] 显示过滤结果,bcd 不等于 a print(ret) # <filter object at 0x0000000001044240> 便是过滤器对象,也是一个迭代器对象 例2: name_l=[{'name':'egon','age':18}, {'name':'alex','age':1000}, {'name':'yuanhao','age':2000}] res=filter(lambda d:d['age']>100,name_l) print(res) # 返回 filter 对象 for i in res: # 遍历对象 print(i) ===== {'age': 1000, 'name': 'alex'} {'age': 2000, 'name': 'yuanhao'}
.排序