Python 几个内建函数: map, reduce,filter,sorted 整理
2015-01-19 17:56
1016 查看
python 的一个特点就是 代码简洁, 很大一部分的功劳就是其提供了很常用的built_in 函数;
最近系统的学习了一下,python的几个很常用的 函数 map,reduce,filter,sorted, 做一下总结。
其实这几个都是高阶函数(把函数作为参数传入的函数称为高阶函数)
map
首先
形式: map(function,list)
比如说 要将一个 列表的数字 转换为字符型:可以通过遍历整个列表来解决:
当然自己可以定义function,然后在map里面直接调用,很方便
reduce
reduce 和map的形式完全一样,reduce(function,list)
其含义是:把一个函数作用在一个列表[x1, x2, x3...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算;
就相当于函数的迭代
比如举一个简单的例子,求一个列表的和:(当然可以直接sum()完成)
将相当于对[1,2,3,4.....]先执行1+2 然后将结果3作为x,列表的下一个元素3作为y再次执行SUM(x,y)函数
filter
和
过滤之后的列表
例如找出在一个str 找出 字母,筛选掉非字母:
这样在 对list处理的时候,有时候会很方便, 自定义function
sorted
排序算法,十分常用,在python中 有sorted()这个内置函数供使用, 排序实质就是比较两个元素的大小
一般默认的是 :
对于两个元素
这个在具体构造比较函数很有用。
继续说sorted() 首先sorted可以直接接受一个列表作为参数: (前提是列表中元素可以比较)
接着,既然
比较大小的函数:
形式 sorted(list,function)
看例子:
这个就是逆序排序,就是从大到小排序,是因为改变了比较大小的标准。
这几个内建函数,或者配合上lambda匿名函数, 会让你的python代码变得很简洁无比~
最近系统的学习了一下,python的几个很常用的 函数 map,reduce,filter,sorted, 做一下总结。
其实这几个都是高阶函数(把函数作为参数传入的函数称为高阶函数)
map
首先
map()函数接收两个参数,一个是函数,一个是列表,
map将传入的函数依次作用到列表的每个元素,并把结果作为新的list返回。
形式: map(function,list)
比如说 要将一个 列表的数字 转换为字符型:可以通过遍历整个列表来解决:
L=[] for i in range(1,10): L.append(str(i)) print L但是如果使用map()的话 可以很简洁的完成:
print map(str,range(1,10))
当然自己可以定义function,然后在map里面直接调用,很方便
reduce
reduce 和map的形式完全一样,reduce(function,list)
其含义是:把一个函数作用在一个列表[x1, x2, x3...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算;
就相当于函数的迭代
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
比如举一个简单的例子,求一个列表的和:(当然可以直接sum()完成)
def SUM(x,y): return x+y print reduce(SUM,range(1,10))
将相当于对[1,2,3,4.....]先执行1+2 然后将结果3作为x,列表的下一个元素3作为y再次执行SUM(x,y)函数
filter
和
map() reduce()类似,
filter()也接收一个函数和一个列表。
filter()把传入的函数依次作用于每个元素,然后根据返回值是
True还是
False决定保留还是丢弃该元素。最后仍然返回一个
过滤之后的列表
例如找出在一个str 找出 字母,筛选掉非字母:
def test(s): return s.isalpha() print filter(test,'abc134sfs')
这样在 对list处理的时候,有时候会很方便, 自定义function
sorted
排序算法,十分常用,在python中 有sorted()这个内置函数供使用, 排序实质就是比较两个元素的大小
一般默认的是 :
对于两个元素
x和
y,如果认为
x < y,则返回
-1,如果认为
x == y,则返回
0,如果认为
x > y,则返回
1
这个在具体构造比较函数很有用。
继续说sorted() 首先sorted可以直接接受一个列表作为参数: (前提是列表中元素可以比较)
>>> sorted([36, 5, 12, 9, 21]) [5, 9, 12, 21, 36]
接着,既然
sorted()函数也是一个高阶函数,那么它就可以以一个函数作为参数,这个函数就可以是
比较大小的函数:
形式 sorted(list,function)
看例子:
def cmp(x,y): if x<y: return 1 elif x==y: return 0 else: return -1 print sorted([1,3,2,5,6,8],cmp)
这个就是逆序排序,就是从大到小排序,是因为改变了比较大小的标准。
这几个内建函数,或者配合上lambda匿名函数, 会让你的python代码变得很简洁无比~
相关文章推荐
- python:内建函数、range()、map()、filter()、reduce()、sorted()、集合的使用、functools中的函数使用、MD5加密
- python的几个内建函数:apply(),filter(),map(),reduce()
- python的几个内建函数:apply(),filter(),map(),reduce()
- python的几个内建函数:apply(),filter(),map(),reduce(
- python的几个内建函数:apply(),filter(),map(),reduce()
- Python中的map(),reduce(),filter(),sorted()函数知识点总结
- python:内建函数、range()、map()、filter()、reduce()、sorted()、集合的使用、functools中的函数使用、MD5加密
- python2,3中内建函数map,reduce,filter,sorted配合lambda
- python的几个内建函数:apply,filter,map,reduce
- python几个重要的函数(lambda,filter,reduce,map,zip) 一、匿名函数lambda lambda argument1,argument2,...argumentN :e
- Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)...啊啊啊
- 【转】python的内建函数:filter,map,reduce,lambda,sorted等
- python几个重要的函数(lambda,filter,reduce,map,zip)
- python几个特别函数map filter reduce lambda
- python3 常见函数 map、reduce、filter、lambda、sorted
- python常用函数之lambda、reduce、map、sorted、filter
- Python 的序列函数:map、reduce、filter、list comprehension和generator expression
- [Python] 内置序列函数之 filter, map, reduce, zip
- Python内建函数之——filter,map,reduce
- Python中reduce、map、filter、apply、tuple函数