python之内置高阶函数

本文深入探讨了函数式编程中的高阶函数概念,包括map、reduce和filter等函数的应用实例,展示了如何使用这些函数进行高效的数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么叫高阶函数?

把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象
的编程范式。

map函数

我们具体用两个小案例来说明map

  1. 接收用户输入3个字符串数字 ; 依次将接收的三个数转换为整形
  2. 对于序列每个元素求绝对值;
nums = input("请输入:").split()
int_nums=list(map(int,nums))   #将字符串通过map函数转换成int型
print(int_nums)

abs_nums=list(map(abs,int_nums))#将int类型中的负数通过map函数求绝对值
print(abs_nums)

在这里插入图片描述

reduce() 函数会对参数序列中元素进行累积。

第一个参数接受一个函数名,后面的参数接受一个或多个可迭代的序列,返回的是一个结果。
利用reduce函数求阶乘

result = reduce(lambda  x, y:x*y, range(1, 5))
print(result)

filter()函数

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
第一个参数接受一个函数名,后面的参数接受一个或多个可迭代的序列,返回的是一个序列。
同样通过案例来理解函数:

  1. 获取100以内能被3或者5整除的所有数;
  2. 获取2000-2999年,所有的闰年;
  3. 获取1000内容所有的素数;
# 1.
nums = filter(lambda num: num % 3 == 0 or num % 5 == 0, range(100))
print(list(nums))

# 2.
years= filter(lambda year: (year % 4 == 0 and year % 100 !=0) or year % 400 == 0, range(2000, 3000))
print(list(years))

# 3.
def is_prime(num):
    """判断是否为素数"""
    if num < 2:
        return  False
    for i in range(2, num):
        if num %i == 0:
            break
    else:
        return  True
prime_num = filter(is_prime, range(1001))
print(list(prime_num))

在这里插入图片描述

还有就是我们之前用过的sort()和sorted()

sort()和sorted()的具体区别是什么呢?

  1. 排序对象不同: sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
  2. 返回值不同:
    list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,
    内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值