一、map函数

描述:接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素。如果传入了多个iterable参数,function 必须接受相同个数的实参并被应用于从所有可迭代对象中并行获取的项。

语法:map(function, iterable, ...)

  • function:函数

  • iterable:一个或多个序列

#内置函数
list(map(abs,[-1,3,-5,8]))
[1, 3, 5, 8]list(map(lambda x: x.center(3,'#'),['马云','马化腾','李彦宏']))['#马云', '马化腾', '李彦宏']
#自定义函数,计算3次方
def square(x) :           return x ** 3
list(map(square, [1,2,3,4,5]))
[1, 8, 27, 64, 125]
# 使用 lambda 匿名函数
list(map(lambda x: x ** 3, [1, 2, 3, 4, 5]))
[1, 8, 27, 64, 125]
# 提供了两个列表,对相同位置的列表数据进行相加
list(map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]))
[3, 7, 11, 15, 19]list(map(lambda x: x%2==1, [1,3,2,4,1]))
[True, True, False, False, True]

二、reduce函数

描述:reduce方法,顾名思义就是减少,假设你有一个由数字组成的可迭代对象,并希望将其缩减为单个值。把一个函数作用在一个序列上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算reduce(f,[x1,x2,x3,x4,x5]) = f(f(f(x1,x2),x3),x4)

语法:reduce(function,sequence[,initial]=>value)

  • function:函数

  • iterable:一个或多个序列

from functools import reduce
nums = [6,9,4,2,4,10,5,9,6,9]
print(nums)
[6, 9, 4, 2, 4, 10, 5, 9, 6, 9]
print(sum(nums))
64
print(reduce(lambda val,x: val+x,nums))
64
# 累计减法
reduce(lambda x,y:x-y,[1,2,3,4])
-8
#累计乘法
def multi(x,y):return x*y
reduce(multi,[1,2,3,4])
24reduce(lambda x,y:x*y,[1,2,3,4])
24

三、filter函数

描述:filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

过滤器,构造一个序列,等价于:[ item for item in iterables if function(item)]

在函数中设定过滤条件,逐一循环迭代器中的元素,将返回值为True时的元素留下,形成一个filter类型数据。

语法:filter(function, iterable)

  • function:判断函数。

  • iterable :可迭代对象。

fil = filter(lambda x: x>10,[1,11,2,45,7,6,13])
fil <filter at 0x28b693b28c8> # 可迭代对象,不能直接查看list(fil)
[11, 45, 13]def isodd(num):if num % 2 == 0:return Trueelse:return False
list(filter(isodd,range(1,13)))
[2, 4, 6, 8, 10, 12]

四、sorted函数

描述:sorted() 函数对所有可迭代的对象进行排序操作。

语法:sorted(iterable,  key=None, reverse=False)

  • iterable:可迭代对象。

  • key:主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。

  • reverse :排序规则,reverse = True 降序 , reverse = False 升序(默认)。

sort 与 sorted 区别

sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作;list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

a = [5,7,6,3,4,1,2]
b = sorted(a) # 保留原列表
a
[5, 7, 6, 3, 4, 1, 2]
b
[1, 2, 3, 4, 5, 6, 7]
#利用key
L=[('b',2),('a',1),('c',3),('d',4)]sorted(L, key=lambda x:x[1])
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
#按年龄排序
students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
sorted(students, key=lambda s: s[2])
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
#按降序
sorted(students, key=lambda s: s[2], reverse=True)
[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
#降序排列
a = [1,4,2,3,1]
sorted(a,reverse=True)
[4, 3, 2, 1, 1]

在看一个更实用的案例,加入一个列表存了各个品牌手机的销量以及售价,我们可以进行各种排序后输出。

info = [('Apple',800,9799),('Xiaomi',40,3599),('Oppo',40,4199),('Vivo',100,4000),('Huawei',40,6899),]
#正常排序
print(sorted(info))
[('Apple', 800, 9799), ('Huawei', 40, 6899), ('Oppo', 40, 4199), ('Vivo', 100, 4000), ('Xiaomi', 40, 3599)]
#按销量排序
print(sorted(info,key = lambda x: x[1],reverse=True))
[('Apple', 800, 9799), ('Vivo', 100, 4000), ('Xiaomi', 40, 3599), ('Oppo', 40, 4199), ('Huawei', 40, 6899)]
#按商品价格排序
print(sorted(info,key = lambda x: x[2],reverse=True))
[('Apple', 800, 9799), ('Huawei', 40, 6899), ('Oppo', 40, 4199), ('Vivo', 100, 4000), ('Xiaomi', 40, 3599)]
#先价格 再销量排序
print(sorted(info,key = lambda x: (x[2],x[1]),reverse=True))
[('Apple', 800, 9799), ('Huawei', 40, 6899), ('Oppo', 40, 4199), ('Vivo', 100, 4000), ('Xiaomi', 40, 3599)]

···  END  ···

往期精彩回顾适合初学者入门人工智能的路线及资料下载中国大学慕课《机器学习》(黄海广主讲)机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载本站qq群955171419,加入微信群请扫码:

【Python】Python四大内置高阶函数(map、reduce、filter、sorted)相关推荐

  1. py函数式编程(高阶函数map/reduce/filter/sorted、闭包函数/返回函数、匿名函数lamber、@装饰器decorator、偏函数functool.partial())

    #py函数式编程.py #高阶函数map/reduce/filter/sorted.闭包函数/返回函数.匿名函数lamber.@装饰器decorator.偏函数functool.partial()# ...

  2. Python高阶函数(map,reduce,filter)

    python内置常用高阶函数:. 称为 函数式编程,常常有一下特点 函数本身可以赋值给变量,赋值后变量为函数: 允许将函数本身作为参数传入另一个函数: 允许返回一个函数. 按常用排序 map() 函数 ...

  3. Python——四大内置高阶函数(map、reduce、filter、sorted)

    一.map函数 基本介绍: map():接收两个参数,一个是函数,一个是序列 map将传入的函数依次作用到序列的每个元素,并把结果 作为新的序列返回 代码块: #对于序列[-1,3,-5,-2]的每个 ...

  4. python中的内置高阶函数

    一. 内置高阶函数的类型 (一).内置高阶函数map """ map():接收两个参数,一个是函数 一个是序列 map将传入的函数依次作用到序列的每个元素,并且把结果作为 ...

  5. python高阶函数map_简单了解python高阶函数map/reduce

    高阶函数map/reduce Python内建了map()和reduce()函数. 我们先看map.map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每 ...

  6. Python自学记录——高阶函数map/reduce、filter、sorted

    Python内置了四个强大的函数,如标题所示,下面来记录说明下: map 看见此 map 需要注意,python中的 map 和 java 中的 map,是不同的,java中的 map 与 pytho ...

  7. map 长度_Python实用教程系列——高阶函数Map、Filter、Reduce

    点击上方蓝色文字关注我们吧 有你想要的精彩 作者 | 那个百分十先生出品 | Python知识学堂 上次推文我们介绍了python中的<Logging日志模块>的相关知识,这次推文我们将学 ...

  8. Python函数详解:函数定义、调用,lambda函数,高阶函数map,filter,reduce,函数式编程,模块化设计、代码复用、函数递归、enumerate()

    一.函数 函数是一段具有特定功能的.可重用的语句组,通过函数名来表示和调用. 函数是一段代码的抽象和封装 函数是一段具有特定功能的.可重用的语句组 函数是一种功能的抽象,表达特定功能 两个作用:降低编 ...

  9. Python中匿名函数与内置高阶函数详解

    大家好,从今天起早起Python将持续更新由小甜同学从 初学者的角度 学习Python的笔记,其特点就是全文大多由 新手易理解 的 代码与注释及动态演示 .刚入门的读者千万不要错过! 很多人学习pyt ...

最新文章

  1. php用存储过程插入数据,如何使用php-webservice使用android中的存储过程将数据插入sql数据库[duplicate]...
  2. 系统带你学习 WebAPIs 第三讲
  3. Sentinel(八)之熔断降级
  4. 存储计算解耦合,构建中国人英语语音数据库
  5. flowable节点的自定义属性扩展_03
  6. 【kafka】kafka log 存储时间 小于 offset 存储时间 offset存在但是消费不到
  7. 实用工具网站(经纬度、短链接、图片格式转换、长微博、图片压缩、uuid、繁体字、md5破解)
  8. 企业生产一线管理应找怎样的好帮手?
  9. tassel软件使用linux,【技术干货】动植物GWAS经典软件TASSEL的使用
  10. 空间统计分析-GeoDa软件
  11. couchbase php,CouchBase + PHP 安装与配置
  12. Windows 11彻底禁用IE浏览器后,银行网银系统完全解决方案!
  13. Hybrid APP混合开发
  14. 题解 UVA1567 【A simple stone game】
  15. 自创银河系,转转转转转----Java球类的椭圆轨迹运动----立体效果
  16. 如何在CentOS8服务器上启用PowerTools
  17. 机器学习_深度学习毕设题目汇总——人脸B
  18. 人工智能(mysql)—— mysql完整的sql查询
  19. 【软件分析学习笔记】5:可达定义分析(Reaching Definitions Analysis)
  20. C++实现的Socket接口实现自定义协议通信

热门文章

  1. php excel 读取日期问题
  2. 趣味SQL——创建指定的数据类型
  3. PHP 修改memory_limit方法
  4. IIS7 与 WCF 问题总结
  5. JQuery 网站换肤功能
  6. Linux Oracle服务启动停止脚本与开机自启动[转]
  7. 谷歌浏览器使用IE内核
  8. 使用Subversion版本标识符
  9. 光流 | 基于光流的人体异常行为检测(附源代码)
  10. C语言 | C语言实现日历打印