第七章第6讲:python的高阶函数-map、reduce、filter
发布时间:2020-12-20 13:20:22 所属栏目:Python 来源:网络整理
导读:1.map()函数: map()函数接收2个参数,一个是函数,一个是序列(list) map()将传入的函数依次作用到序列的每个元素上,并把结果作为新的序列(list) # 案例要求:讲一个纯数字的list中的值,都变成平方,且放在另一个list中 # 方式1:通过传统的for方式实现
1.map()函数: map()函数接收2个参数,一个是函数,一个是序列(list) map()将传入的函数依次作用到序列的每个元素上,并把结果作为新的序列(list) # 案例要求:讲一个纯数字的list中的值,都变成平方,且放在另一个list中 # 方式1:通过传统的for方式实现要求 print("方式1:") def f(x): return x * x L = [] for n in [1,2,3,4]: L.append(f(n)) print(L) # ========================= # 方式2:通过map()函数 print("方式2:") def f(x): return x * x print(list(map(f,[1,4]))) 结果: 方式1: [1,4,9,16] 方式2: [1,16] 2.reduce()函数: reduce()函数是把一个函数作用到一个序列上(list) from functools import reduce def add(x,y): return x + y # 案例1 print("案例1:") L = [1,4] print(reduce(add,L)) # 案例2 print("案例2:") M = [1,3] def fn(x,y): return x * 10 + y L = [1,3] print(reduce(fn,L)) 结果: 案例1: 10 案例2: 123 3.filter()函数 filter()也是要接收2个参数,1个是函数,1个是list filter()函数把传入的函数依次作用到每一个元素上,然后根据返回值是true还是false来决定是否显示(是否丢弃) # 案例1:模拟一个list,删掉其中的偶数,只保留奇数 print("案例1:") def div(n): return n % 2 == 1 L = [1,5,6,7] print(list(filter(div,L))) # 案例2,:把一个list中的空字符串去掉 print("案例2:") def Noempty(s): return s and s.strip() L = [‘L‘,‘‘,‘E‘,None,‘0‘,‘‘] print(list(filter(Noempty,L))) 结果: 案例1: [1,7] 案例2: [‘L‘,‘0‘] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |