Python笔记007 - 高阶函数 - 1

Python笔记007 - 高阶函数 - 1

函数式编程:

  • 在Python中,函数是一等对象
  • 一等对象一般都会具有如下特点:
    • 对象是在运行时创建的
    • 能赋值给变量或作为数据结构中的元素
    • 能作为参数传递
    • 能作为返回值返回
  • 高阶函数(至少要符合以下两个特点中的一个):
    • 接受一个或多个函数作为参数
    • 将函数作为返回值返回

小功能:将列表中的偶数提取出来

l = [1,2,3,4,8,5,6,7,12,14,15]

def fn(lst):
    '''
    函数目标:将指定的列表中的偶数提取出来,生成一个新的列表
    函数参数:lst,list列表,指定列表
    '''
    # 创建一个空列表,用来存储以后要用到的元素
    new_list = []
    # 判断要选择的元素,组成新列表
    for i in lst:
        if i % 2 == 0:
            new_list.append(i)
    return new_list


print(fn(l))

高阶函数:

l = [1,2,3,4,8,5,6,7,12,14,15]

def fn0(i):
    # 判断是否是偶数,如果是返回True,如果不是,返回False
    if i % 2 == 0:
        return True 
    return False 


def fn1(i):
    # 判断是否是奇数,如果是返回True,如果不是,返回False
    if i % 2 != 0:
        return True 
    return False 


def fn5(i):
    # 判断是否是大于5,如果是返回True,如果不是,返回False
    if i > 5:
        return True 
    return False 


def fn(lst,func):
    '''
    函数目标:将指定的列表中的偶数提取出来,生成一个新的列表
    函数参数:lst,list列表,指定列表
    '''
    # 创建一个空列表,用来存储以后要用到的元素
    new_list = []
    # 判断要选择的元素,组成新列表
    for i in lst:
        if func(i):
            new_list.append(i)
    return new_list


print(fn(l,fn5))
  • filter( )
  • 可以从序列中过滤出符合条件的元素,保存到一个新的序列中
  • 参数:
    • 1.函数,根据该函数来过滤序列(可迭代的结构)
    • 2.需要过滤的序列(可迭代的结构)
  • 返回值:
    • 过滤后的新序列(可迭代的结构)
# 其他代码如上

print(fn(l,fn5))
print(filter(fn5, l))
# <filter object at 0x100710580>
# 注意,这里直接打印不出结果,可以使用list进行一个转换
print(list(filter(fn5, l)))
# [8, 6, 7, 12, 14, 15]
# [8, 6, 7, 12, 14, 15]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

统计小白er

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值