首页 > 编程语言 > 详细

Python中特殊函数和表达式 filter,map,reduce,lambda

时间:2016-03-18 23:33:01      阅读:444      评论:0      收藏:0      [点我收藏+]

1. filter(function, sequence):

对sequence中的元素执行function函数,返回由function函数执行结果为True的元素组成的序列,注意新序列类型与传入序列相同

测试:返回正数

#!/usr/bin/env python

def findPositiveNum(num):
    if num > 0:
        return True
    else:
        return False

nums = (3,2,1,0,-1,-2,-3)

result = filter(findPositiveNum, nums)

print result

结果:

(3, 2, 1)

 

2. map(function, sequence):

对sequence中的元素执行function函数,返回由function函数执行结果为元素组成的序列,如果function支持多个参数,map同样可以传递多个sequence,注意新序列类型为List

测试:对序列元素+1

 1 #!/usr/bin/env python
 2 
 3 def numPlusOne(num):
 4     return num + 1
 5 
 6 nums = (3,2,1,0,-1,-2,-3)
 7 
 8 result = map(numPlusOne, nums)
 9 
10 print result

结果:

[4, 3, 2, 1, 0, -1, -2]

 

3. reduce(function, sequence, starting_value):

对sequence中的元素迭代执行function函数,同时支持starting_value作为初始值

测试:以100为初始值计算序列和

#!/usr/bin/env python

def addNum(num1, num2):
    return num1 + num2

nums = (4,3,2,1,0,-1,-2,-3)

result = reduce(addNum, nums, 100)

print result

结果:

104

 

4. lambda:

使用lambda表达式可以定义一个匿名函数

 测试:对传入值做加法

#!/usr/bin/env python


addNum = lambda x : x + 2
result = addNum(1)
print result

print (lambda x: x + 2)(1)

结果:

3
3

 

Python中特殊函数和表达式 filter,map,reduce,lambda

原文:http://www.cnblogs.com/wanpengcoder/p/5293647.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!