码迷,mamicode.com
首页 > 编程语言 > 详细

python学习笔记-Day04-第三部分(内置函数,map,filter,reduce,yield)

时间:2015-11-21 07:15:41      阅读:211      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!