zoukankan      html  css  js  c++  java
  • python:lambda、filter、map、reduce

    lambda 为关键字。filter,map,reduce为内置函数。

    lambda:实现python中单行最小函数。

    g = lambda x: x * 2 
    #相当于
    def g(x):
        return x*2
    
    print(g(3))#  6  注意:这里直接g(3)可以执行,但没有输出的,前面的print不能少
    

    Map函数

    map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。 
    举例说明 :
    比如我们有一个函数f(x)=x2,要把这个函数作用在一个list [1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map()实现如下: 
    这里写图片描述 

    现在,我们用Python代码实现:

    >>> def f(x):
    ...     return x * x
    ...
    >>> map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
    [1, 4, 9, 16, 25, 36, 49, 64, 81]
    

    Reduce函数 

    reduce把一个函数作用在一个序列[x1, x2, x3…]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:  

    reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
    

      比方说对一个序列求和,就可以用reduce实现:

    >>> def add(x, y):
    ...     return x + y
    ...
    >>> reduce(add, [1, 3, 5, 7, 9])
    25
    

    Filter函数 

    Python内建的filter()函数用于过滤序列。和map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

    True保留,False丢弃 
    例如,在一个list中,删掉偶数,只保留奇数,可以这么写:

    def is_odd(n):
        return n % 2 == 1
    
    filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15])
    
    # 结果: [1, 5, 9, 15]
    

      可见用filter()这个高阶函数,关键在于正确实现一个“筛选”函数。

  • 相关阅读:
    DHCP分配ip地址。0.0.0.0与255.255.255.255
    net-snmp配置文件详解
    net-snmp开发中出现“Error opening specified endpoint"" ”的解决方案
    Elasticsearch 学习笔记
    Prometheus 监控报警系统 AlertManager 之邮件告警
    Match All Query
    Elasticsearch postman
    Centos7修改root密码
    ElasticSearch中profile API的使用
    kafka查询某时间段内的消息
  • 原文地址:https://www.cnblogs.com/tianqizhi/p/9337881.html
Copyright © 2011-2022 走看看