第七章 (小补充)匿名函数搭配使用

常用的内置函数

1.lambda 形参:返回值
# 匿名函数一般不单独使用 主要配合其他函数一起使用

2.map()  # 映射
map(函数名,可迭代对象)  # 结果是一个迭代器(老母猪)
l = [11, 22, 33, 44, 55, 66, 77]
res = map(lambda x: x + 1, l)
res = list(res)
print(res)
结果:[12, 23, 34, 45, 56, 67, 78]

3.zip()  拉链
'''传统方式'''
l = [11, 22, 33, 44]
name_lsit = ['jason', 'kevin', 'tony', 'jerry']
l1 = [1, 2, 3, 4]
l2 = [8, 7, 6, 5]
new_list = []
for i in range(len(l)):
    new_list.append((l[i], name_lsit[i], l1[i], l2[i]))
print(new_list)
'''结果:[(11, 'jason', 1, 8), (22, 'kevin', 2, 7), (33, 'tony', 3, 6), (44, 'jerry', 4, 5)]'''


'''zip!!!'''
l = [11, 22, 33, 44, 55, 66, 77]
name_lsit = ['jason', 'kevin', 'tony', 'jerry']
l1 = [1, 2, 3, 4, 5, 6, 7]
l2 = [8, 7, 6, 5, 4, 3, 2, 1]
res = list(zip(l, name_lsit, l1, l2))
print(res)
'''结果:[(11, 'jason', 1, 8), (22, 'kevin', 2, 7), (33, 'tony', 3, 6), (44, 'jerry', 4, 5)]'''

4.max与min	max求最大值 min求最小值
l = [11, 22, 33, 44, 55, 66, 77]
print(max(l))  # 77
print(min(l))  # 11

d = {
    'jason': 3000,
    'Bevin': 1000000,
    'Ascar': 10000000000,
    'aerry': 88888
}
def index(key):
    return d[key]
print(max(d, key=lambda key: d[key]))  # Ascar  for循环先取值 之后再比较大小
print(min(d, key=lambda key: d[key]))  # jason

4.filter  过滤
l = [11, 22, 33, 44, 55]
res = filter(lambda x: x > 30, l)
print(list(res))  # [33, 44, 55]

5.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)  # 495
res1 = reduce(lambda x, y: x + y, d, 100)
print(res1)  # 595

posted @ 2021-11-19 19:36  hai起奈  阅读(28)  评论(0编辑  收藏  举报