zoukankan      html  css  js  c++  java
  • Python中特殊函数和表达式 filter,map,reduce,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
  • 相关阅读:
    Tomcat version 6.0 only supports J2EE 1.2 ......
    Javascript高级编程
    Javascript基础编程の变量、对象、数据类型及函数
    Javascript基础编程の面向对象编程
    Java网络编程のTCP/IP
    Java网络编程のOSI
    redis整理の持久化机制
    redis整理の主从复制
    redis整理の安全认证
    redis整理の配置
  • 原文地址:https://www.cnblogs.com/wanpengcoder/p/5293647.html
Copyright © 2011-2022 走看看