高阶函数:map、reduce、filter、sorted
来源:互联网 发布:微信加活粉软件 编辑:程序博客网 时间:2024/05/28 16:27
1、map函数:传入两个参数,一个函数,一个可迭代对象。将函数依次作用于可迭代对象并把结果作为新的生成器返回。
>>> def f(x):... return x * x...>>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])>>> list(r)[1, 4, 9, 16, 25, 36, 49, 64, 81]
2、reduce函数:传入两个参数,一个函数,一个序列,该函数必须接收两个参数,reduce把结果和序列的下一个元素做累积计算。>>> from functools import reduce>>> def fn(x, y):... return x * 10 + y...>>> reduce(fn, [1, 3, 5, 7, 9])13579
注:python 3.0以后, reduce已经不在built-in function里了, 要用它就得from functools import reduce附:做练习题时学到两个函数
(2)pow()返回x的y次方的值
pow( x, y )
(2)、index() 方法检测字符串中是否包含子字符串 str
str.index(str, beg=0, end=len(string)) str -- 指定检索的字符串、beg -- 开始索引,默认为0、end -- 结束索引,默认为字符串的长度。
3、filter函数:用于筛选序列,两个参数,一个函数,一个序列。函数作用于每个序列,根据结果返回是True还是False决定是保留还是丢弃该元素。最终返回的是一个生成器,惰性序列。
求素数例子:
def _odd_iter(): n = 1 while True: n = n + 2 yield n
def _not_divisible(n): return lambda x: x % n > 0
def primes(): yield 2 it = _odd_iter() # 初始序列 while True: n = next(it) # 返回序列的第一个数 yield n it = filter(_not_divisible(n), it) # 构造新序列
# 打印1000以内的素数:for n in primes(): if n < 1000: print(n) else: break
例子中_not_divisible()函数中x变量怎样理解?
_not_disivible()函数体中包含了一个匿名函数,在理解传值过程做了实验:
(1)、传一个值,如:_not_disivible(26),提示:
<function _not_disivible.<locals>.<lambda> at 0x7f5a45fde378>
(2)、()内传两个值,如:_not_disivible(26,2)。提示:
TypeError: _not_disivible() takes 1 positional argument but 2 were given
(3)、传两个值,如:_not_disivible(2)(4),提示:
False
(4)、传两个值,如:_not_disivible(2)(5),提示:
True
综上:定义的函数中包含匿名函数时,传的参数有两个,里面的参数是传给定义的函数,外面的参数传匿名函数。
上述求素数的例子,n对应n,x对应it。
4、sorted函数:排序算法
sorted函数原型:
sotred(Iterable,[cmp,key,reverse=True])
第一个参数是一个iterable,返回值是一个对iterable中元素进行排序后的列表(list)。
可选的参数有三个,cmp、key和reverse。
1)cmp指定一个定制的比较函数,这个函数接收两个参数(iterable的元素),如果第一个参数小于第二个参数,返回一个负数;如果第一个参数等于第二个参数,返回零;如果第一个参数大于第二个参数,返回一个正数。默认值为None。
2)key指定一个接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None。
3)reverse是一个布尔值。如果设置为True,列表元素将被倒序排列。
key参数的值应该是一个函数,这个函数接收一个参数并且返回一个用于比较的关键字。对复杂对象的比较通常是使用对象的切片作为关键字。例如:
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)]
- 高阶函数:map、reduce、filter、sorted
- Python学习2--高阶函数map、reduce、filter、sorted
- python 2.7 : 高阶函数map/reduce/filter/sorted
- Python高阶函数——map/reduce/filter/sorted
- python学习 高阶函数/map()/reduce()/filter()/sorted()
- 高阶函数用法:map、reduce、filter、sorted、zip
- Python内置高阶函数map,reduce,filter,sorted,zip
- map reduce filter sorted (高阶函数)
- Python3中的高阶函数(map,reduce,filter,sorted)
- Python学习-高阶函数Map/reduce/filter/sorted
- javaScript 高阶函数 map/reduce/filter
- 高阶函数:Filter、Map和Reduce
- python 高阶函数 map/reduce/filter/
- Python函数式编程(高阶函数、map()、reduce()、filter()、sorted()、lambda、decorator装饰器)
- Python教程学习简记8--Python 高阶函数 map/reduce filter sorted
- python学习(9)高阶函数map、reduce、filter、sorted
- python 高阶函数 map reduce filter sorted 闭包 装饰器
- python——高阶函数——map reduce filter sorted
- Choice学姐的众数问题
- ext--jsp页面异步
- 残差网络小结
- 安卓平板开机提示“ EXT4-fs (mmcblk0p3): warning: checktime reached, running e2fsck is recommende”
- Leetcode:292. Nim Game 是否能赢得比赛
- 高阶函数:map、reduce、filter、sorted
- java单例模式
- 第八周项目4 稀疏矩阵的三元组表示的实现及应用(2)
- 基础的vimrc设置
- java工厂模式
- HTML
- Windows下MongoDB安装与使用整理
- 堆糖网 爬取图片
- python中的下划线