python基础之map/reduce/filter/sorted
来源:互联网 发布:java 今天星期几 编辑:程序博客网 时间:2024/05/24 04:34
---map(fun,iterable)
首先来看一看map()函数,map函数接受两个参数,第一个参数是函数的名称,第二个参数一个可迭代对象。即map(fun,iterable)
map函数就是将具体数值根据算法进行计算,并将结果保存为一个迭代器。我们知道,迭代器很'懒',通过调用next函数一次只输出一个值。
来看一个最简单的map()例子。
#给定一组数1,2,3要求求出每个数加一后的值>>> def add(x):... x+=1... return x... >>> l=[1,2,3]>>> r=map(add,l)>>> print(r)<map object at 0x03E4F510>>>> for i in r:... print(i)... 234
使用map对一行进行多个赋值
x,y,z=map(int,input('please input your number:').split())print(x,y,z)
如何利用map()将名字首字母大写?
def daxie(name): return name[0].upper+name[1:]def daxie2(name): return '%s%s'%(name[0].upper(),name[1:])a=['linghuchong','dongfangbubai']r=map(daxie2,a)for i in r: print(i)
--reduce
reduce同map函数一样,也是接受两个参数,但不同的是,reduce函数将当前数值的计算结果与下一个数值的计算结果进行累积计算。
reduce()函数第一次运行时会将可迭代对象的第一项作为第一个参数,第二项作为第二个参数传入函数。
第二次运行则会将函数第一次运行所返回的结果作为第一个参数,可迭代对象的第三项作为第二个参数传入函数……
即:reduce(f,[1,2,3,4])=f(f(f(1,2),3),4)
来看一个简单的reduce函数的例子
#from functools import reducedef leijia(x,y): #注意,我们所定义的函数必须要接受两个参数,否则会报错 return x+yprint(reduce(leijia,[1,2,3,4,5]))#结果15#当然也可多加默认参数from functools import reducedef leijia(x,y,z=2): return x+y+zprint(reduce(leijia,[1,2,3,4,5]))#结果:23
--filter
同上两个函数一样,接受两个参数,第一个参数为函数名,第二个参数为序列。但filter根据序列中各个元素作用与函数时,函数返回结果(True/False)来决定该元素是否保留。
来看一个筛选偶数的简单例子:
def select(num): if num%2==0: return True else: return Falser=filter(select,[1,2,3,4,5,6])for i in r: print(i)
--sorted(list,key=None,reverse=False)
sorted顾名思义,就是排序的意思。
>>> sorted([22,33,55,11,44])[11, 22, 33, 44, 55]
sorted还可以接受一个key函数,实现自定义排序。
1 key指定的函数将作用于list的 每一个元素 上。也就是list的 每个元素 作为参数传入key函数
2 sorted()函数按照keys函数返回的结果进行排序,并 按照对应关系 返回list相应的元素
>>> sorted([22,33,-11,44,-55],key=abs)[-11, 22, 33, 44, -55]
来一个复杂一点的实例:
# 根据名称排序>>> d=[('linghuchong','xixingdafa'),('dongfangbubai','kuihuabaodian'),('zhangwuji','qiankundanuoyi')]>>> def by_name(a):... return a[0]... >>> r=sorted(d,key=by_name)>>> print(r)[('dongfangbubai', 'kuihuabaodian'), ('linghuchong', 'xixingdafa'), ('zhangwuji', 'qiankundanuoyi')]# 根据功法排序>>> def by_gongfa(a):... return a[1]... >>> r2=sorted(d,key=by_gongfa)>>> print(r2)[('dongfangbubai', 'kuihuabaodian'), ('zhangwuji', 'qiankundanuoyi'), ('linghuchong', 'xixingdafa')]
- python基础之map/reduce/filter/sorted
- python中的map,reduce,filter,sorted函数
- python学习笔记,map/reduce,filter,sorted
- Python之map、reduce、filter
- python基础之(map, filter,reduce,lambda,global 变量)
- Python之filter、map、reduce、lambda
- python学习系列之map、filter、reduce
- python 之 map/reduce/filter使用体会
- Python之map(),reduce(),filter()函数
- python:map filter reduce
- python filter/map/reduce
- python map reduce filter
- python map reduce filter
- python map reduce filter
- python map,reduce,filter
- Python 几个内建函数: map, reduce,filter,sorted 整理
- Python学习2--高阶函数map、reduce、filter、sorted
- python中的map,reduce,filter,sorted,lambda表达式
- js无缝间隙向上滚动
- MySQL创建索引方法:ALTER TABLE和CREATE INDEX的区别
- android通知栏屏蔽访客模式
- (chrome)Adobe Flash 无法正常使用
- ijkPlayer编译流程记录
- python基础之map/reduce/filter/sorted
- opengles中使用vbo(顶点缓冲区)
- 设计模式之状态模式
- awk/sed-Exercise
- (42)触发器Actor
- 数据库中树结构数据,转换为Java对象树结构( 多叉树结构 )
- 单调,凹凸,极最拐,渐近线,曲率以及不等式的证明方法
- linux wc
- 查看mysql 占用空间