首页 / PYTHON / 谈谈Python中那些高阶函数
谈谈Python中那些高阶函数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了谈谈Python中那些高阶函数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2563字,纯文字阅读大概需要4分钟。
内容图文
![谈谈Python中那些高阶函数](/upload/InfoBanner/zyjiaocheng/596/45871296c6024b928c8f255a1a27f9ad.jpg)
谈谈Python中那些高阶函数
前言
在编程语言中,高阶函数指的是接受函数作为输入或输出的函数。简而言之就是将一个函数作为参数传到另一个函数A中,那么这个函数A就是高阶函数。(可接收其他函数作为参数的函数称为高阶函数)
一、map()函数
python中的map()函数是一个内置的高阶函数,一般用法是map(function, iterable)。需要传入一个函数,这个函数可以是内置的,也可以是自己定义,也可以是匿名函数即lambda。第二个参数是一个可迭代对象,如列表、字典字符串等。map函数返回的是一个map对象,也是一个可迭代对象,可以利用for循环迭代查看元素,也可以尝试 list() 将其转为列表对象操作、map形式:
map(function, iterable, …)
例:
def add(x):
return x+x
print(map(add,[1,2,3]))
print(list(map(add,[1,2,3])))
输出结果:
二、reduce()函数
reduce用于对可迭代对象中的元素进行累积操作,reduce接受两个参数,一个是函数f(x, y) 参数(该函数必须有两个参数),另一个是可迭代对象。reduce行为是先将可迭代对象的前两个元素传入 f(x, y) 中,然后不断将 f(x, y) 的返回值再次和下一个迭代对象传入f(x, y),直到迭代完迭代对象中的元素,并返回最终的 f(x, y) 的返回值。reduce形式:
reduce(function, iterable[, initializer])
例:
from functools import reduce
def prod(x,y):
return x*y
print(reduce(prod,[2,4,5,7,12]))
print(reduce(prod,[2,4,5,7,12],100))
输出结果:
三、filter()函数
filter用于过滤筛选可迭代对象中的元素,如果符合条件则返回对应的元素序列(类型为filter),filter接受两个参数,一个是函数用于筛选元素,返回值为True或Flase,另一个是可迭代对象。
例:
import math
def is_sqr(x):
return math.sqrt(x)==int(math.sqrt(x))
print(list(filter(is_sqr,range(1,101))))
输出结果:
四、sorted()函数
对所有可迭代的对象进行排序操作。
sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
sorted(iterable,key=None,reverse=False)
iterable – 可迭代对象。
key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse – 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
返回重新排序的列表:
print(sorted([5,2,3,1,4]))
#[1, 2, 3, 4, 5]
print(sorted({1:'D',2:'B',3:'b',4:'E',5:'A'}))
#[1, 2, 3, 4, 5]
利用key进行倒序排序:
example_list=[1,4,7,2,8,5,6,7]
result_list=sorted(example_list,key=lambda x:x*-1)
print(result_list)
#输出结果 [8, 7, 7, 6, 5, 4, 2, 1]
要进行反向排序,也可以通过传入第三个参数 reverse=True:
example_list=[1,4,7,2,8,5,6,7]
print(sorted(example_list,reverse=True))
#输出结果 [8, 7, 7, 6, 5, 4, 2, 1]
内容总结
以上是互联网集市为您收集整理的谈谈Python中那些高阶函数全部内容,希望文章能够帮你解决谈谈Python中那些高阶函数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。