Python——函数式编程

本文介绍了Python中的map()和sorted()函数的使用,展示了如何通过匿名函数lambda进行操作。此外,还探讨了functools模块中的partial函数,用于提前设定函数参数,创建新的函数。示例中展示了如何利用partial固定int函数的base参数,转换二进制字符串。

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

def f(x):
    return x * x


def function_operation():
    # map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回
    r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
    l1 = list(r)  # 由于结果r是一个Iterator,Iterator是惰性序列,因此通过list()函数让它把整个序列都计算出来并返回一个list。
    print(l1)
    # 关键字lambda表示匿名函数,冒号前面的x表示函数参数
    l2 = list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
    # sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,例如按绝对值大小排序
    l2 = sorted([36, 5, -12, 9, -21], key=abs)
    print(l2)
    l3 = sorted([36, 5, -12, 9, -21], reverse=True)
    print(l3)

    # Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function)。要注意,这里的偏函数和数学意义上的偏函数不一样
    a = int('12345')
    b = int('12345', base=8)
    int2 = functools.partial(int, base=2)
    c = int2('1000000')
    print(c)
    # 所以,简单总结functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数

运行结果:

[1, 4, 9, 16, 25, 36, 49, 64, 81]
[5, 9, -12, -21, 36]
[36, 9, 5, -12, -21]
64

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值