zoukankan      html  css  js  c++  java
  • python—filter, lambda

    先上一段特别简单的代码:

    print max(filter(lambda x: 555555 % x == 0, range(100, 999)))

    代码的意思是输出 555555 最大的三位数的约数是多少。

    首先,这段代码的第一个知识点是python的内置函数 filter

    filter()函数,是用来过滤列表的。最简单的说法就是 用一个函数来过滤一个列表,把列表的每一项传递进入过滤函数,过滤函数返回false就从这个列表中删除该项。

    filter()函数包括两个参数, function和list。即该函数根据function参数返回的结果是否为真来过滤list参数中的项,最后返回一个新的列表。

    简单来讲,filter()函数相当于下面的代码:

    c = [b for b in a1 if b > 2]
    print c

    第二个知识点是 lambda()函数

    Python支持这种语法,它允许用户快速定义单行的最小函数,这些叫做 lambda的函数,是从Lisp借用来的。

    def f(x):
        return x * 2
    
    g = lambda x: x * 2
    
    (lambda x: x * 2)(3)

    根据代码可以看到,lambda函数完成了普通函数相同的事情,并且,lambda在参数列表周围没有括号,并且忽略了return关键字(return隐含存在,因为整个函数只有一行,且该函数没有名称,但可以将它赋值给一个变量进行调用)

    最后一段代码展示了lambda函数只是一个内联函数。

  • 相关阅读:
    linux文件IO操作篇 (二) 缓冲文件
    信号量和互斥锁的区别
    linux 无锁化编程
    C语言中 time相关的函数 头文件
    printf 打印字体和背景带颜色的输出的方法
    在win10环境下安装Cygwin,可以GCC编译
    学习《大话存储》
    linux内核态和用户态的信号量
    学习Makefile
    git 环境搭建
  • 原文地址:https://www.cnblogs.com/roicel/p/2956043.html
Copyright © 2011-2022 走看看