加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

第七章第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)
reduce()函数必须接收2个函数,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]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读