来自 编程 2019-11-29 06:15 的文章
当前位置: 网上澳门金莎娱乐 > 编程 > 正文

课时21:网上澳门金莎娱乐:函数:lambda表达式

目录:

这些都是python的特色,不仅强大,而且好用,配合起来使用更是无敌。

  一、lambda表达式

零、lambda

  二、介绍两个BIF:filter()和map()

lambda用于产生一个匿名表达式,组成部分为:lambda + ‘函数表达式’ ‘函数表达式’由一个冒号加上两个‘操作数’组成,如:

  三、课时21课后习题及答案

lambda x:x*3

 

冒号左边的操作数,作为函数的参数;冒号右边的作为函数的放回值!

*********************

那么lambda x:x*3就等价于:

一、lambda表达式

def xxx(x):  

*********************

  return x*3

Python允许使用lambda关键字来创建匿名函数。

 

先来定义一个普通的函数:

一、列表生成式

>>> def ds(x):
    return 2 * x + 1

>>> ds(5)
11

列表生成器,可以由3个部分组成,这3个从左到右的顺序是:

如果使用lambda语句来定义这个函数,就会变成这样:

1、表达式部分:一般为一个表达式作用一个列表的元素;或者就该元素,不作用任何表达式 、

>>> lambda x : 2 * x + 1
<function <lambda> at 0x00000172968578C8>

2、列表生成部分:一般为一个for循环产生初始列表,并依次导出元素

Python的lambda表达式语法非常精简,基本语法是在冒号(:)左边放原函数的参数,可以有多个参数,用逗号(,)隔开即可;冒号右边是返回值。在上面的例子中我们发现lambda语句实际上是返回一个函数对象,如果要对它进行使用,只需要进行简单的操作即可:

3、过滤部分:一般由一个if判断构成,条件为假的过滤掉。这个部分可选。

>>> g=lambda x : 2 * x + 1
>>> g(5)
11

总结一下列表生成器就是:

下面演示lambda表达式两个参数的例子:

[表达式部分 列表生成部分 过滤部分(可选)]#注意三个部分之间空格隔开即可

>>> def add(x,y):
    return x + y

>>> add(3,4)
7
>>> g = lambda x , y :x + y
>>> g(3,4)
7

例子:

lambda表达式的作用:

[ str(i) for i in range(1, 100) if not(i%3)]

(1)Python写一些执行脚本时,使用lambda就可以省下定义函数过程,比如说我们只是需要写个简单的脚本来管理服务器时间,我们就不需要专门定义一个函数然后再写调用,使用lambda就可以使得代码更加精简。

这个理解顺序过程是:

(2)对于一些比较抽象并且整个程序执行下来只需要调用一两次的函数,有时候给函数起个名字也是比较头疼的问题,使用lambda就不需要考虑命名的问题了。

首先由列表生成部分:for i in range(1, 100)逐一产生列表的元素,

(3)简化代码的可读性,由于普通的屌丝函数阅读经常要跳到开头def定义部分,使用lambda函数可以省去这样的步骤。

每个 元素经过过滤部分:if not(i%3)检测,判断为假的直接丢弃,

 

判断为真的再交给表达式部分:str(i) 进行处理得到新列表的元素。

*******************************************

这个流程直到for结束循环,新列表生成。

二、介绍两个BIF:filter()和map()

 

*******************************************

二、过滤器(filter)

 1、filter()

过滤器有两个参数:function类型,序列

我们研究的第一个内建函数是一个过滤器。我们每天会接触到大量的数据,过滤器的作用就显得非常重要了,通过过滤器,就可以保存你所关注的信息,把其它不感兴趣的东西直接丢掉。那Python如何来实现过滤功能呢?先来看看Python自己的注释:

1、序列是将被筛选的原始集合,function类型是制定筛选的规则(公式)。

>>> help(filter)
Help on class filter in module builtins:

class filter(object)
 |  filter(function or None, iterable) --> filter object
 |  
 |  Return an iterator yielding those items of iterable for which function(item)
 |  is true. If function is None, return the items that are true.
 |  
 |  Methods defined here:
 |  
 |  __getattribute__(self, name, /)
 |      Return getattr(self, name).
 |  
 |  __iter__(self, /)
 |      Implement iter(self).
 |  
 |  __next__(self, /)
 |      Implement next(self).
 |  
 |  __reduce__(...)
 |      Return state information for pickling.
 |  
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |  
 |  __new__(*args, **kwargs) from builtins.type
 |      Create and return a new object.  See help(type) for accurate signature.

2、function类型如果返回None,或者说就是None,则序列中为值为假的将被过滤,如:

本文由网上澳门金莎娱乐发布于编程,转载请注明出处:课时21:网上澳门金莎娱乐:函数:lambda表达式

关键词: