链表内置函数 filter(), map(), 和 reduce()
来源:互联网 发布:康熙时期国力 知乎 编辑:程序博客网 时间:2024/05/16 17:48
链表来讲,有三个内置函数非常有用: filter(), map(), 和 reduce() 。
1. filter(function, sequence)
返回一个sequence(序列),包括了给定序列中所有调用 function(item) 后返回值为true的元素。(如果可能的话,会返回相同的类型)。如果该 序列 (sequence) 是一个 string (字符串)或者tuple (元组),返回值必定是同一类型,否则,它总是 list 。例如,以下程序可以计算部分素数
>>> def f(x): return x % 2 != 0 and x % 3 != 0...>>> filter(f, range(2, 25))[5, 7, 11, 13, 17, 19, 23]
2. map(function, sequence)
为每一个元素依次调用 function(item) 并将返回值组成一个链表返回。例如,以下程序计算立方>>> def cube(x): return x*x*x...>>> map(cube, range(1, 11))[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]可以传入多个序列,函数也必须要有对应数量的参数,执行时会依次用各序列上对应的元素来调用函数(如果某些序列比其它的短,就用 None 来代替)。如果把 None 做为一个函数传入,则直接返回参数做为替代。例如>>> seq = range(8)>>> def add(x, y): return x+y...>>> map(add, seq, seq)[0, 2, 4, 6, 8, 10, 12, 14] 3.reduce(func, sequence)
返回一个单值,它是这样构造的:首先以序列的前两个元素调用函数 function ,再以返回值和第三个参数调用,依次执行下去。例如,以下程序计算 1 到 10 的整数之和>>> def add(x,y): return x+y...>>> reduce(add, range(1, 11))55如果序列中只有一个元素,就返回它,如果序列是空的,就抛出一个异常。可以传入第三个参数做为初始值。如果序列是空的,就返回初始值,否则函数会先接收初始值和序列的第一个元素,然后是返回值和下一个元素,依此类推。例如>>> def sum(seq):... def add(x,y): return x+y... return reduce(add, seq, 0)...>>> sum(range(1, 11))55>>> sum([])0
0 0
- 链表内置函数 filter(), map(), 和 reduce()
- map、reduce、filter内置函数
- Python 中 map,reduce,和filter 内置函数的方法
- python内置函数map/reduce/filter
- python内置函数map/reduce/filter
- python map ,reduce filter内置函数使用说明
- python 内置函数map/filter/reduce
- python 内置函数 map、 reduce 、filter
- python 内置函数filter, lambda, map, reduce
- Python 内置函数 lambda、filter、map、reduce
- python内置函数map/reduce/filter
- Python【map、reduce、filter】内置函数使用说明
- python内置函数lambda、filter、map、reduce
- Map Filter和Reduce函数
- python几个内置函数之-filter,map,reduce
- python 中的 filter, lambda, map, reduce 内置函数
- python中的三个内置函数map,reduce,filter
- map,filter,reduce三个内置函数的用法备忘
- LeetCode Recover Binary Search Tree
- 跨程序共享数据,探究内容提供器
- iOS最全性能优化(中)
- scala类和对象
- Android Studio Preview 报错 org.jetbrains.android.uipreview.RenderingException
- 链表内置函数 filter(), map(), 和 reduce()
- KL散度转载
- 融云SDK集成Demo。单聊,群里,讨论组,自定义cell等。
- iOS最全性能优化(下)
- Bootstrap的JavaScript插件实现步骤
- springMVC+mybatis
- qemu命令行参数转libvirt的xml文件
- linux 创建用户和组
- WPF-基础知识介绍