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
  • 相关阅读:
    03_02_leetcode_11_盛最多的水
    03_01_跳跃表
    初学Java算法编程_Array List自己和官方文档的区别
    编译原理习题解析-第1章
    VS2019配置C+++mingW32配置
    自创理解绝对定位和相对定位的方法
    Solution -「洛谷 P7395」「CoE-I 2021C」弹珠游戏
    Solution Set -「ARC 113」
    Solution Set -「ABC 192」
    Solution Set -「CF 1486」
  • 原文地址:https://www.cnblogs.com/wanpengcoder/p/5293647.html
Copyright © 2011-2022 走看看