python——高阶函数(map、reduce、filter、sorted)

本文介绍了Python中的四个高阶函数:map、reduce、filter和sorted。map函数将指定函数应用于序列的每个元素,返回新序列;reduce函数将序列中的元素两两组合并应用函数,得到单一结果;filter函数根据提供的函数对序列进行筛选,返回满足条件的元素;sorted函数对序列进行排序,可自定义比较函数。文中通过多个实例展示了这些函数的使用方法和应用场景。

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

高阶函数——map:

         概念:map() 函数接收两个参数,一个是函数,一个是序列; 它将传入的函数依次作用到传入序列的每个元素上,并且把结果作为新的序列返回。 返回的是一个对象,要用列表接收!!!

        通过几个练习题来理解map函数的用法:

1. 对序列[-4,5,-7,-9,6]每个元素求绝对值:

执行结果:

这里注意一下“ abs “是python内置的求元素绝对值的函数。

2. 产生10个10以内的随机数的序列,求这个序列中每个数的阶乘:

## 第一步:定义一个求阶乘的函数:

## 第二步:产生序列:

## 第三步: 求序列中每个元素的阶乘:

 执行结果:

3. 用户接收一串字符串‘1 3 5 7 8’ 将该字符串中所有数字转化为整型:

执行结果:

高阶函数——ruduce:

          概念:reduce函数必须有两个参数:一个函数、一个序列 ;然后使函数作用到序列上:先让函数作用在序列的前两个数值上, 函数所得的结果再作为序列的值,与序列的第三个数再作为函数的 输入,就这样依次类推……

          python2中:reduce是内置函数。
          python3中:需要导入相应的模块“ from functools import reduce”。

         还是 通过几个练习来理解reduce函数

1. 求序列中所有数相乘的结果:

执行结果:

2. 求序列中所有数的和:

执行结果:

高阶函数——filter:

         概念:人称过滤函数,和map函数类似,也接受一个函数和一个序列,不同之处在于,filter 在函数作用在序列的每一个数值时,若函数返回为True才保留,函数返回为False则丢弃(map函数一般用于运算、改变序列,filter函数一般用于对序列进行筛选)。

         还是通过几个练习题来对filte函数加深理解:

1. 找出指定序列中的偶数:

执行结果:

2. 找出序列 [1,100] 中的质数:

执行结果:

高阶函数——sorted:

概念:Python 内置的 sorted() 函数就可以对 list 进行排序; 此外,它还可以接收一个比较函数来实现自定义的排序。

练习1.  对列表进行排序:

执行结果:

  还有一个函数sort可以对序列进行排序,不过不同之处在于sort函数直接在原序列上排序,改变了原来列表的顺序:

执行结果:

练习二: 对嵌套列表进行排序

##  定义一个列表嵌套元组的数据结构如下:

## 默认方式:按照列表中序列的第一列元素 “商品名称” 进行排序

执行结果:

##  自定义方式排序1:要想按照列表中序列单项的第二列元素“重量”进行排序:

执行结果:

## 自定义方式排序2: 按照序列中单项中的第三列“价格”进行排序

执行结果:

## 自定义方式排序3: 先按照价格排序,若遇到价格相等的情况,将价格相等的按照重量进行排序。

执行结果:

练习三:

# 第一步,写出规定输入格式的代码:

# 第二步,将输入的数组种的序列按照题目要求进行自定义排序

# 第三步: 按照指定的输出格式打印:

执行结果:

练习四:

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值