python根底 filter, lambda 函数表达式

filter(function or None, sequence),其间sequence 可所以list ,tuple,string。这个函数的功用是过滤出sequence 中所有以元素本身作为参数调用function时回来True或bool(回来值)为True的元素并以列表回来. filter只能承受两个参(function,sequence) ,其间函数function中只能回来一个值

先上一段简略的代码:

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函数仅仅一个内联函数。


上一篇:Python根底 - 字符串格式化 (%操作符)
下一篇:python根底 函数之 强壮的zip

PythonTab微信大众号:

Python技能交流合作群 ( 请勿加多个群 ):

群1: 87464755

群2: 333646237

群3: 318130924

群4: 385100854