无名字的函数 用lambda :表示python
:左边是参数,右边是返回值函数
函数的调用时须要函数名+()由于匿名函数没有名字,因此无法调用只能一次性使用code
匿名函数单独使用没有意义,须要配合内置函数一块儿使用才有意义对象
python内部提供的内置方法,如:print(), len(), range(), max(), min(), sorted(), map(), filter()排序
max(可迭代对象) 求最大值字符串
字符串比较的是ASCIIit
# 求列表l1中的最大值 l1 = [10, 2, 5, 1, 4] print(max(l1))
# 求字典中薪资最高的人 dict1 = { 'tank': 1000, 'egon': 500, 'sean': 200, 'jason': 800 } print(max(dict1, key=lambda x:dict1[x])) >>> tank
min(可迭代对象) 求最小值class
字符串比较的是ASCIIimport
# 求字典中薪资最低的人 dict1 = { 'tank': 1000, 'egon': 500, 'sean': 200, 'jason': 800 } print(min(dict1, key=lambda x:dict1[x])) >>> sean
# 将字典中薪资排序 dict1 = { 'tank': 1000, 'egon': 500, 'sean': 200, 'jason': 800 } # 升序 print(sorted(dict1, key=lambda x: dict1[x])) # 降序 print(sorted(dict1, key=lambda x: dict1[x], reverse=True))
map() :映射匿名函数
语法:map(函数地址,可迭代对象) ---->>获得map对象
map会将可迭代对象中的值遍历取出,而后按照指定的规则映射到一个map对象中
能够将map对象转换到列表或者元组中,只能转一次
res = map(lambda x: x, range(5)) print(res) # 获得map对象>>>><map object at 0x000001374A5C13C8> print(list(res)) # 将map对象放到列表中>>>[0, 1, 2, 3, 4] print(tuple(res)) # 只能转一次>>>()
# 将list1中tank后缀加上"_生蚝",其余元素中后缀加上"DS" list1 = ['tank', 'jason', 'sean', 'egon'] res = map(lambda x: x+'生蚝' if x == 'tank' else x + 'DS', list1) # res是map对象 print(tuple(res)) >>> ('tank生蚝', 'jasonDS', 'seanDS', 'egonDS')
reduce():合并
须要从functools包中调用from functools import reduce
语法:reduce(函数地址,可迭代对象,初始值默认为None)
将可迭代对象的值两两进行合并,并初始值能够修改
from functools import reduce # 调用reduce模块 # 求0-5的和 # 普通方法 num = 0 for i in range(5): num += i print(num) # reduce方法 res = reduce(lambda x, y: x+y, range(5)) # 初始值默认为None print(res) # 10 res = reduce(lambda x, y: x+y, range(5),100) # 初始值为100 print(res) # 110 res = reduce(lambda x, y: x*y, range(1, 5)) # 初始值默认为None print(res) # 24
filter():过滤
语法:filter(函数地址,可迭代对象) ----->>获得filter对象
将可迭代对象中的值遍历取出,而后经过判断,filter会将函数中返回的结果为True 对应 的参数值 “过滤出来”,添加到filter对象中
能够将filter对象转换到列表或者元组中,只能转一次
# 将结尾是DS的名字过滤出来 t = ('tank生蚝', 'jasonDS', 'seanDS', 'egonDS') res = filter(lambda x:x.endswith('DS'), t) # filter对象 print(res) # filter对象<filter object at 0x00000240FD29CA08> print(list(res)) # 将filter对象转到列表中['jasonDS', 'seanDS', 'egonDS']