匿名函数的搭档
匿名函数的搭档
1.匿名函数
没有名字的函数
1.1匿名函数框架
lambda 形参:返回值
匿名函数一般不单独使用 主要配合其他函数一起使用
2.搭档们
2.1map() 映射
map(函数名,可迭代对象) # 结果是一个迭代器
2.1.1示例
l = [1,2,3,4]
map = (lambda X:x+1,l) # 循环获取列表中每个元素并传递给匿名函数保存返回值
2.2zip() 拉链
l = [11, 22, 33, 44]
name_list = ['jason', 'kevin', 'tony', 'jerry']
方式1:
new_list = []
for i in range(len(l)):
new_list.append((l[i],name_list[i]))
print(new_list) # [(11, 'jason'), (22, 'kevin'), (33, 'tony'), (44, 'jerry')]
方式2:
res = zip(l,name_list)
print(list(res)) # [(11, 'jason'), (22, 'kevin'), (33, 'tony'), (44, 'jerry')]
2.3max()与min()
求最大值与最小值
列表示例
l = [11, 22, 33, 44, 55, 66, 77]
print(max(l))
print(min(l))
字典示例
d = {
'jason':3000,
'Bevin':1000000,
'Ascar':10000000000,
'aerry':88888
}
def index(key):
return d[key]
print(max(d,key = lambda key:d[key])) # Ascar
print(min(d,key = lambda key:d[key])) # jason
2.4filter()过滤
l = [11, 22, 33, 44, 55]
# 过滤掉小于30的数
res = filter(lambda x:x>30,l)
print(list(res)) # [33, 44, 55]
2.5reduce() 归总
reduce()函数是functools模块中的一个函数 其作用是对参数序列中元素进行累积 返回值是一个数值
注意:Python3.x reduce() 已经被移到 functools 模块里,如果我们要使用,需要引入 functools 模块来调用 reduce() 函数
from functools import reduce
d = [11, 22, 33, 44, 55, 66, 77, 88, 99]
res = reduce(lambda x,y:x+y,d)
print(res)