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