首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python智阐15-函数补充,高阶函数

Python的基础知识基本快介绍完了,这里再补充下函数的一些知识。后续主要会介绍正则、爬虫,数据分析、还有一些Python进阶。

1、map()和reduce()

含义解释:MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。(摘自百度百科)

1.1 map()

map(参数1,参数2):

参数1:函数;参数2:序列

将传入的函数依次作用在序列中的每一个元素,并把结果作为新的Iterator返回

示例:

现在我们要利用这个函数,求1-10的平方。

用一个for循环可以很快的求出结果:

输出:

>>>[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

现在我们用map()来实现:

输出:

>>>[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

1.2 reduce()

reduce(参数1,参数2):

参数1:函数;参数2:序列

把一个函数作用在一个序列上,但是这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素累计运算。

示例:

我们先写一个求和函数:

我们要利用这个函数,求1-10的和

用一个for循环可以很快的求出结果:

输出:

现在我们用reduce()来实现

输出:

1.3 综合应用

有一个字符串"123456789",求这个字符串对应的每个元素相加后的和。

解法思维:按照以往的做法,我们需要对字符串进行处理,先把每个字符串转成数字,然后进行相加:

输出:

现在使用mapreduce来实现:

输出:

2、filter()

filter(参数1,参数2):

参数1:函数;参数2:序列

将传入的函数依次作用在序列中的每一个元素,根据返回值是True还是False决定是否保留该元素。

示例:

有一个列表[1,2,3,4,5,6,7,8,9],要求:只保留奇数,偶数剔除。

我们利用之前介绍的列表处理方法和循环函数可以很快求出结果:

输出:

>>>[1, 3, 5, 7, 9]

现在我们使用filter()来实现:

输出:

>>>[1, 3, 5, 7, 9]

3、sorted()

之前在介绍列表的时候,有介绍过列表的排序:

输出:

>>>[4, -3, 2, 1, -6, 5]

>>>[-6, -3, 1, 2, 4, 5]

Python有个sorted()函数也可以对list进行排序,而且功能更加强大。

示例1:普通排序

输出:

>>>[-6, -3, 1, 2, 4, 5]

>>>[5, 4, 2, 1, -3, -6]

示例2:函数作用后排序

输出:

>>>[1, 2, -3, 4, 5, -6]

>>>[1, 2, -3, 4, 5, -6]

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181018A1YCHK00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券