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

本文详细介绍了Python中的filter, map, reduce函数与lambda表达式的使用方法,通过具体示例展示了如何筛选正数、对序列元素进行操作及计算序列和,并利用lambda表达式进行简单的加法运算。

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

 

转载于:https://www.cnblogs.com/wanpengcoder/p/5293647.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值