Python中的“内置高阶函数”

python内置的四大高阶函数 把一个函数作用在一个序列上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算reduce(f,[x1,x2,x3,x4,x5])=f(f(f(x1,x2),x3),x4)map函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素。该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回True或False,最后将返回True的元素放到新列表中。['#马云','马化腾','李彦宏']... 阅读详情

高阶函数
-实参是一个函数名
-函数的返回值是一个函数
函数本身也可以赋值给变量 变量可以指向函数
例子:求绝对值

print(abs(-11))                     ##abs函数作用于-11 abs函数是求绝对值的

内置高阶函数
1、map()函数
接收两个参数, 一个是函数, 一个是序列
map将传入的函数依次作用到序列的每个元素 并且把结果作为新的序列返回。
例子1:对于序列[-1,3,-4,-5]的每个元素求绝对值

print(list(map(abs,[-1,3,-4,5])))   ##map()表示传入一个函数,并且作用于列表

例子2:对于序列的每个元素求阶乘

import random
	def factoria(x):                   					 ##构造一个求阶乘的函数
	    res = 1
	    for i in range(1,x+1):
	        res =res* i
	    return res
	li = [random.randint(2,7) for i in range(10)]       ##构造一个列表
	print(list(map(factoria,li)))                       ##将函数内置,作用与列表

2、内置高阶函数reduce
reduce是把结果继续和和序列的下一个元素作累积运算,
reduce接受两个参数
python2.x中,reduce是内置函数
python3.x中,需要导入,即from functools import reduce
例子1,累加

from functools import reduce        ##导入reduce
def multi(x,y):
    return x+y
print(reduce(multi,range(1,4)))

例子2,累乘

from functools import reduce
def multi(x,y):
    return x*y
print(reduce(multi,(1,2,3,4)))

3、内置高阶函数filter
filter和map函数相似,也是接收一个函数和一个序列
filter把传入和函数依次作用,并根据返回值是True还是False决定保留还是丢弃,True保留,False丢弃,相当于过滤
例子,求偶数

def isodd(num):                             ##构造一个求偶数的函数
    if num%2 ==0:
        return True
    else:
        return  False
print(list(filter(isodd,range(30))))        ##类似于map,需要加list显示输出值

4、内置高阶函数sorted
默认sort和sorted方法由小到大进行排序,resverse=True表示由大到小排序
例子1,由大到小排序

li = [1,2,3,4]
a= li.sort(reverse=True)      #resverse=True表示由大到小排序
print(li)

例子2:

info = [
	    #   商品  数量  价格
	
	    ('apple1', 29 ,3),
	    ('apple2', 27 ,77),
	    ('apple3', 25 ,5),
	    ('apple4', 30 ,34),
	    ('apple5', 50 ,23)
	]
	
	print(sorted(info))             	 ##默认排序,是根据第一列进行排序
	
	def sorted_by_count(x):         	##定义函数返回第二列
	    return x[1]
	print(sorted(info,key=sorted_by_count))         ##按数量排序由小到大
	
	def sorted_by_price(x):
	    return x[2]
	print(sorted(info,key=sorted_by_price))         ##按价格排序,由小到大
	
	def sorted_by_count_price(x):
	    return x[1],x[2]
	print(sorted(info,key=sorted_by_count_price))   ##先按数量由小到大,数量相等,再根据价格

例题:
(2018-携程-春招题)题目需求:
给定一个整形数组, 将数组中所有的0移动到末尾, 非0项保持不变;
在原始数组上进行移动操作, 勿创建新的数组;
输入:
第一行是数组长度, 后续每一行是数组的一条记录;
4
0
7
0
2
输出:
调整后数组的内容;
7
2
0
0

n = int(input())             		   ##此处的input是输入列表长度
li = [int(input()) for i in range(n)]  ##此处n是表循环几次,即列表的长度,此处input是输入列表元素
def  move(x):
    if x == 0:
        return 2             		   	##把0元素转换成返回值2
    else:
        return 1            		    ##非0元素转换成返回值1
print(sorted(li,key=move))   			##把0转换为2,非0转换成1,因为sorted函数是由小到大排序,由小到大排序时就可以得到结果

5、匿名函数
匿名函数的关键字为lambda
冒号前面的是形参, 冒号后面的是返回值
#求x+y

from functools import reduce
print(reduce(lambda x,y:x+y,[1,2,3,4,5]))

#求平方

print(list(map(lambda x:x**2,range(5))))

#求100以内偶数

print(list(filter(lambda x:x%2==0,range(100))))

例题:有一个整数列表(10个元素),要求调整元素顺序,把所有的奇数放在前面,偶数放在后面

import random
s1 = [ random.randint(1,10) for i in range(10)]
# def move(x):
#     if x%2==0:
#         return 2
#     else:
#         return 1
# print(sorted(s1,key=move))

print(sorted(s1,key=lambda x:1 if x%2==0 else 0))       ##返回值是1,反之即else返回值是0,然后根据0,1排序

例子:利用map和reduce编写一个str2float函数,把字符串’123.456’转换成浮点数123.456

from functools import reduce
def str2float(s):
    ch = {str(x):x for x in range(10)}      ##'0' 0 '1' 1  '2' 2
    L= s.split('.')     ##将字符串分割开
    n1 = reduce(lambda x,y:x*10+y,map(lambda x:ch[x],L[0]))     ##整数部分,L[0]表示分割的第一部分,即整数部分
    #map的作用:‘0’ ==>0, ‘1’ ==>1 '2' ==>2
    #'123' ==> [1,2,3] 1*10+2=12  12*10+3 =123,小数部分同理
    n2 = reduce(lambda x,y:x*10+y,map(lambda x:ch[x],L[1]))     ##小数部分,L[1]表示分割的第二部分,即小数部分
    n2 *=0.1**len(L[1])     ##小数部分乘0.1的len(L[1])次方加整数
    return n1 + n2
num = str2float('123.456')
print(num)

例子,回文数是指从左向右读和从右向左读都是一样的数,例如12321,909。请利用filter()筛选出回文数

from functools import reduce
def huiwenshu(n):
    l = list(str(n))        ##数字变成一个列表
    l.reverse()             ##反转
    #数学计算,回文数
    num =reduce(lambda x,y:int(x) *10 + int(y),l)
    return num ==n
output = filter(huiwenshu,range(1,1000))
print('1~1000: ',list(output))
python中的高阶函数的定义及内置高阶函数 高阶函数介绍 普通函数中的参数是一种数据类型,比如列表,字符串,整型 高阶函数的实参是一个函数名,函数的返回值是一个函数。 例如在python中有一个函数是 abs 用来求整型的绝对值: 我们可以用代码表示: f = abs() #函数可以复制成一个变量。 print(f(-10)) 一个简单的高阶函数: def fun(x,y,f): return f(x),f(y) print(fun(-10,34,abs)) # f = abs 执行结果: 几个内置高阶函数 map map()函数接收两个参数,一个是函数,一个是序列 。 map将传入的函 立即下载

相关推荐

PMSM无感foc控制(滑模-反正切-PLL)【仿真模型搭建教程】(附模型)

本文主要目的是教大家如何把文献中的公式转换成仿真模型。 首先介绍滑模控制的原理及如何搭建simulink模型。 1.1基于反电势估计位置原理 永磁同步电机在静止坐标系αβ下的电压方程: 扩展反电动势包含转子位置信息,并且αβ轴下扩展反电动势的反正切函数正好就等于位置角theta。 1.2 滑模控制原理(比较重要的点是以电机电流模型推导展开) 通过滑模观测得到鲁棒性比较高的αβ轴下扩展反电动势,并求其反正切函数,得到位置信息。 /*********************...

weixin_44769876的博客 1万+

Python内置的20个高阶函数的功能和示例详解

Python内置了许多强大的高阶函数,它们提供了丰富的功能来处理各种数据操作。本文介绍了20个常用的高阶函数,包括mapfilterreducesortedzipenumerateallanymaxminsumlenreversedslicesortedevalexec等。通过掌握这些高阶函数,可以更高效地处理数据、编写更简洁的代码,并更好地理解函数式编程的概念。在实际编程中,根据任务需求选择合适的高阶函数可以大大提高代码的可读性和可维护性。

涛哥聊Python 2138

ENSP实验一:防火墙基础配置

配置client(内网)、FTP Server(外网)的IP地址。进入防火墙,输入密码:默认为admin@123。

Carohuan的博客 1万+

python函数—高阶函数

filter() 函数用于 过滤 可迭代对象中不符合条件的元素,返回由符合条件的元素组成的新的迭代器。filter() 函数把传入的函数依次作用于每个元素,然后根据返回值是 True 还是 False,来决定保留或丢弃该元素。map函数也是python中的一个内置函数,用法同之前讲过的filter函数类似。map在这里的意思是映射的意思,会根据提供的函数对指定序列做映射。map函数会返回一个迭代器,如果要转换为列表,可以使用 list() 来转换。

m0_59451453的博客 1086

汽车BMS技术分享及其HIL测试方案

在全球碳中和目标的战略驱动下,新能源汽车产业正以指数级速度重塑交通出行格局。动力电池作为电动汽车的"心脏",其性能与安全性不仅直接决定了车辆的续航里程、使用寿命等关键指标,更深刻影响着消费者对电动汽车的市场接受度。而电池管理系统(Battery Management System, BMS)是动力电池安全运行与性能释放的核心技术支撑。

Speedgoat的博客 2684

用FSL的eddy_topup pipeline完整处理DTI数据:从原理到实战,搞定涡流和磁化率畸变

本文详细介绍了如何使用FSL的eddy_topup pipeline完整处理DTI数据,解决涡流和磁化率畸变问题。从原理到实战,涵盖了数据格式转换、脑提取、b0图像处理等关键步骤,并提供了acqparams.txt配置和eddy命令的详细解析,帮助研究人员高效完成DTI数据校正。

weixin_29235525的博客 283

python---内置高阶函数

高阶函数 -实参是一个函数名 -函数的返回值是一个函数 函数本身也可以赋值给变量 变量可以指向函数 例子:求绝对值 print(abs(-11)) ##abs函数作用于-11 abs函数是求绝对值的 内置高阶函数 1、map()函数 接收两个参数, 一个是函数, 一个是序列 map将传入的函数依次作用到序列的每个元素 并且把结果作为新的序列返回。 例子1:...

weixin_43697701的博客 298

大数据平台符合信创(CDH国产化代替)详细方案(企业内部不外传方案)

信创旨在实现信息技术产业的自主可控,减少对外部技术的依赖,从而提升国家信息安全和经济发展的自主性。在此背景下,中国对信创提出了更高的要求,以期在激烈的市场竞争中占据有利地位。信创不仅关乎技术层面的创新,更涉及到产业链条的整合与优化。它要求从基础硬件、操作系统、数据库、中间件等各个层面实现国产替代,构建完整的信息技术生态体系。尤其是在做国企项目时,就有硬性要求使用符合信创(国产代替)。在信创背景下,符合要求的产品必须具备自主可控、安全可靠以及性能卓越等核心特点。

大模型大数据攻城狮的专栏 3510

Python--函数

1、定义一个函数` def hello(): print('hello') print('python' hello() ##调用函数,通过函数名调用 def westos(): print('is westos') def python(): ##函数中嵌套函数 print('is p...

Dead_LS的博客 914

【制作100个unity游戏之22】3DRPG游戏开发01——项目的设置和导入及渲染管线的安装修复

如果你现在存在一些疑惑unity导入素材为什么是粉紫色的?表示他没有适配我们的URP通用渲染管线,要如何适配呢?素材渲染错误丢失要如何解决?如果你有上面3个任意的问题,那这篇文章同样适合你,我将手把手教你如何安装修复渲染管线,看完你就了解了!在Unity中,他们都是渲染管线,它们的主要区别在于性能和功能。LWRP是早期版本的URP,它专门为移动设备和低端PC设计,旨在提供更高的性能。它使用基于顶点的光照和简化的后处理效果,可以在更低的硬件要求下运行。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2428

AgentScope 实战训练营-构建元规划智能体(Meta Planner Agent)—— 从 0 到 1 完整实现

本文介绍了基于AgentScope框架开发的元规划智能体(Meta Planner Agent)系统。该系统通过任务拆解和子代理编排机制,实现复杂任务的自动化处理。核心架构分为用户层、规划器层和子代理层,其中规划器作为"项目经理"负责任务分解、创建子代理并协调执行流程。关键技术包括AgentScope多智能体框架、DashScope大语言模型、PlanNotebook计划管理工具等。

program哲学 359

python定义公民类_Python-理解函数为”一等公民”

Python中一切皆对象,函数也是对象,也就是说对象能干什么、函数也能干。如拥有原生属性、自定义创建、动态赋值、作为参数传递、作为返回值返回。作为“一等公民”的函数一等公民?对于这个描述,难道在编程的代码世界里,也会分369等吗,那么这种划分方式是什么呢没错在编程的世界里,不同的对象有不同的权利、不同的作用范围、不同的生命周期。同时其赋值、传递、使用方式也大为不同。举一个简单的例子,java作为编...

weixin_39635657的博客 334

继电器控制LED灯具导致触点烧蚀粘连的解决办法

继电器控制LED灯具导致触点烧蚀粘连的解决办法

2700

Python内置高阶函数

1

qq_43081190的博客 252

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

python中的高阶函数

@ 1 什么是高阶函数? 只要满足下面的任意一个条件就是高阶函数 1、一个函数的函数名作为参数传给另外一个函数 2、一个函数返回值(return)为另外一个函数(返回为自己,则为递归) 下面分别举例详细说明: 1.1 高阶函数:一个函数的函数名作为参数传给另外一个函数 def func(): print("定义一个普通函数") def high_level(func): ...

求真、务实 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

python基础-内置高阶函数map/reduce/filter函数的使用

python基础

qq_35224503的博客 219

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

python中的内置高阶函数

一、 内置高阶函数的类型 (一)、内置高阶函数map """ map():接收两个参数,一个是函数 一个是序列 map将传入的函数依次作用到序列的每个元素,并且把结果作为新的序列返回 """ import random # 对一个序列[-1,3,-4,-5]的每一个元素求绝对值 print(list(map(abs,[-1,3,-4,-5]))) # 对每个元素求阶乘 def f(...

dghfttgv的博客 2905

python中的高阶函数以及常见的内置高阶函数(map、reduce、filter、sorted)

1.什么是高阶函数? 高阶函数的实参是一个函数名 高阶函数的返回值是一个函数 函数本身也可以赋值给变量,变量也可以指向函数 高阶函数传递的参数包括函数名 2.常见的内置高阶函数 (1)map函数 map():接收两个参数,一个是函数,一个是序列 map将传入的函数依次作用到序列的每个元素,并把结果作为新的序列返回 举例:对于序列[-1,3,-5,-2]的每个元素求绝对值 举例...

ymeng9527的博客 905

python高阶函数 —— 内置高阶函数、返回值为函数、函数作为参数、闭包

文章目录一、什么是高阶函数?二、 python 内置高阶函数:map、filter、reduce、sort、sorted2.1、 filter() 过滤出符合条件的元素2.2、 map() 对所有元素做指定的操作2.3、 reduce() 合并2.4、 sort() 排序2.5、 sorted() 排序三、 闭包——也是高阶函数3.1、 形成闭包的必要条件 一、什么是高阶函数? 高阶函数:一个函...

猎人在吃肉 1260

python中高阶函数及内置高阶函数

目录1. 高阶函数的定义2. 内置的高阶函数2.1 map函数2.2 reduce()函数2.3 filter过滤函数2.4 sorted函数高阶函数应用3. 匿名函数(lambda)3.1 匿名函数的定义3.2 基本应用4. 应用(快速生成内推码,验证码) 1. 高阶函数的定义 > 高阶函数是一个返回函数的函数。 > 他的实参是一个函数名,他的返回值是一个函数。 > 函数可...

rrrr_ffff的博客 744

【Python】内置 高阶函数 及其详细说明和用法

在 Python 中,高阶函数是指接受函数作为参数或返回函数作为结果的函数。它们是函数式编程的核心,支持更简洁和灵活的代码。Python 提供了多个内置高阶函数,广泛用于数据处理、迭代和函数组合。以下是 Python 中常见的内置高阶函数及其详细说明和用法。 主要有:map、filter、sorted、reduce、max和min、any和all、zip、functools.partial、functools.lru_cache、itertools.starmap

彬彬侠的博客 1421

Python 常用内置高阶函数

本文系统介绍了Python中常用的高阶函数及其应用场景。高阶函数指可以接收或返回函数的函数,包括map()(批量转换)、filter()(数据筛选)、reduce()(归并计算)、zip()(多序列打包)、sort()/sorted()(排序)等基础函数,以及any()/all()(布尔判断)、enumerate()(带索引遍历)、lambda表达式(匿名函数)和functools.partial()(参数绑定)等实用工具。这些函数可以单独或组合使用,通过函数式编程风格简化数据处理流程,提高代码简洁性和可读

余子越的博客 1020

python中常见的内置高阶函数

推荐: 高阶函数 python高阶函数有误但可以参考 python中常见的内置高阶函数 什么是高阶函数? 高阶函数:一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归),满足其一则为高阶函数(Higher-order function)。 常见的内置高阶函数:map,reduce,filter,sorted 在python3中,reduce...

ACBC12345的博客 544
上一篇: Python中的“字典生成式”
下一篇: python生成验证码
Dead_LS
博客等级 码龄7年 6粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值