python 把函数作为参数 ---高阶函数

把函数作为参数
在2.1小节中,我们讲了高阶函数的概念,并编写了一个简单的高阶函数:

def add(x, y, f):
    return f(x) + f(y)
如果传入abs作为参数f的值:

add(-5, 9, abs)
根据函数的定义,函数执行的代码实际上是:

abs(-5) + abs(9)
由于参数 x, y 和 f 都可以任意传入,如果 f 传入其他函数,就可以得到不同的返回值。

任务
利用add(x,y,f)函数,计算:

import math

def add(x, y, f):
    return f(x) + f(y)

print add(25, 9, math.sqrt)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python函数是指可以接受其他函数作为参数,并且/或者返回一个函数作为结果的函数。在Python中,map()和reduce()是两个常见的高阶函数。 map()函数可以将一个函数应用于一个可迭代对象的每个元素,并将结果返回为一个迭代器。它的格式是map(function, Iterable),其中function是要应用的函数,Iterable是要操作的可迭代对象。map()函数将可迭代对象的每个元素作为参数传入指定的函数,并对元素进行操作,最终返回一个迭代器。 reduce()函数可以对可迭代对象的元素进行累积操作。它的格式是reduce(function, Iterable),其中function是一个函数,有两个参数,Iterable是要进行操作的可迭代对象。reduce()函数会将列表的前两个元素作为参数传入function函数中,然后将运行结果作为第一个参数,再将列表的下一个元素作为第二个参数传入,如此类推,直至元素全部调用。 例如,如果我们有一个列表lst = [1, 2, 3, 4,我们可以使用reduce()函数将列表中的元素相乘,得到结果24。代码如下所示: ```python from functools import reduce lst = [1, 2, 3, 4] def multiply(a, b): return a * b result = reduce(multiply, lst) print(result) # 输出结果为24 ``` 这段代码中,我们首先导入了reduce()函数,然后定义了一个multiply函数,这个函数接受两个参数,将它们相乘并返回结果。接下来,我们使用reduce()函数将multiply函数应用于lst列表中的元素,最终得到结果24。 综上所述,Python高阶函数可以帮助我们更方便地对可迭代对象进行操作,提高代码的复用性和简洁性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python 函数的使用-python基础,python函数的使用说明,有python2的参考代码](https://download.csdn.net/download/li171049/88221777)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python的四大高阶函数](https://blog.csdn.net/weixin_51445771/article/details/120015684)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值