说说那些我也不太懂的 Python 高阶函数
2017-02-04 14:44
417 查看
map(func, list):
map 本身接收 2 个参数:一个函数、一个列表, 将 func 作用在 list 中的每一个元素上并返回一个新的 listegg: 我们要将公司每个人的薪水提高 40% 并打印出来,就可以这样完成
#! /usr/bin/env python # -*- coding: utf-8 -*- bob = ['Bob Smith', 42, 3000, 'software'] sue = ['Sue Jones', 45, 4000, 'hardware'] employee = [bob,sue] def payRaise(salary): salary *= 1.4 return salary print(list(map(payRaise, [e[2] for e in employee]))) # 这里用到了列表解析器 # 打印结果为:[4200.0, 5600.0]
reduce(func, list):
reduce 本身接收 2 个参数:一个函数、一个列表,与 map 不同之处在于 map 接收的函数只能接收一个参数,而 reduce 接收的函数只能接收2个参数,reduce 依次反复对 list 中每一个元素进行 func 操作,并将最终结果返回egg: 我们要将一个列表中所有的数求和,就可以这样完成
#! /usr/bin/env python # -*- coding: utf-8 -*- from functools import reduce # 在 Python 3 里,reduce()函数已经被从全局名字空间里移除了,它现在被放置在 fucntools 模块里,用的话要先导入 score = [1,2,3,4,5,6,7] def mySum(a, b): return a + b print(reduce(mySum, score)) # 打印结果为:28
filter(func, list)
filter 本身也接受2个参数:一个函数,一个列表, 将 func 作用在 list 中的每一个元素上进行判断,将判断结果为 True 的元素返回,并生成一个生成器对象egg: 我们要得到 1-100 里面所有的奇数,就可以这样完成
#! /usr/bin/env python # -*- coding: utf-8 -*- def is_odd(x): return x % 2 != 0 all_num = range(1,101) # python 3 中 range 函数返回生成器对象 odd_generator = filter(is_odd, list(all_num)) # filter 函数然会生成器对象 print(list(odd_generator)) # 打印列表 # 打印结果为:1-100 所有奇数
进一步交流可以加 QQ 群:397234385
或者 QQ 扫码入群:
相关文章推荐
- android Google Map获取地理位置信息的方法
- Spark RDD API详解(一) Map和Reduce
- jQuery plugin items filter
- Python中map()函数浅析
- Android使用Google Map浅谈
- 全国哀悼日网站页面变成灰色的filter方法
- 用css filter做鼠标滑过图片效果
- Erlang中的映射组Map详细介绍
- c++中map的基本用法和嵌套用法实例分析
- C++中vector和map的删除方法(推荐)
- 浅谈c++中的stl中的map用法详解
- PHP Filter过滤器全面解析
- 微信小程序 地图map详解及简单实例
- ASP 使用Filter函数来检索数组的实现代码
- 一个简单的JavaScript Map实例(分享)
- JavaScript 数组some()和filter()的用法及区别
- Vue.js报错Failed to resolve filter问题的解决方法
- 百度地图给map添加右键菜单(判断是否为marker)
- JavaScript中实现Map的示例代码