标签:python map 内置函数 filter reduce yield
map
遍历序列,对其中的每个元素进行相应的操作,最终获得新的序列
lst =[1,2,3,4]
def fun(arg):
return arg+10
new_lst = map(fun,lst)
def fun2(a1,a2):
return a1+a2
lst01 = [11,22,33]
lst02 = [1,2,3]
map(func2,lst01,lst02) #序列的长度需要一致
或者 map(lambda a1,a2,a3:a1+a2,lst01,lst02)
#################################################################
filter
有两个参数,第一参数是函数或者None 第二个参数是一个序列
接收一个函数或者None,返回符合条件的元素组成的集合
lst = [1,2,3,4,5,0]
print filter(None,li) # 遍历所有元素,并过滤掉 布尔值为假的元素,此时输入布尔值为真的元素。
输出大于3的元素
print filter(lambda a:a>3,lst)
#################################################################
reduce
对序列内的元素进行累计操作,返回一个结果
# reduce的第一个参数,函数必须要有两个参数
# reduce的第二个参数,要循环的序列
# reduce的第三个参数,初始值
li = [11, 22, 33]
result = reduce(lambda arg1, arg2: arg1 + arg2, li)
# reduce的第一个参数,函数必须要有两个参数
# reduce的第二个参数,要循环的序列
# reduce的第三个参数,初始值
#################################################################
yield 生成器
记住上一次的操作,下次在执行的时候,可以继续执行
def fun():
yield 1
yield 2
yield 3
for i in fun():
print i
结果:
1
2
3
自定义生成器:
def myrange(num):
seed =0
while True:
if seed>=num:
break
seed+=1
yield seed
for i in myrange(10):
print i
本文出自 “Will的笔记” 博客,请务必保留此出处http://timesnotes.blog.51cto.com/1079212/1715266
python学习笔记-Day04-第三部分(内置函数,map,filter,reduce,yield)
标签:python map 内置函数 filter reduce yield
原文地址:http://timesnotes.blog.51cto.com/1079212/1715266