python匿名函数简记

摘要:
所谓匿名意味着函数不再以def语句的标准形式定义。

一、匿名函数:python使用lambda来创建匿名函数。所谓匿名,就是说不再使用def语句这样标准的形式来定义一个函数。
  1、lambda只是一个表达式,不是一个代码块,函数体比def简单的同时,也有’难以封装更多的逻辑进lambda表达式‘的不足。
  2、lambda函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
  3、虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
  4、语法:lambda [arg1 [,arg2,.....argn]]:expression
    如:result = lambda x: x * x      #result是一个匿名函数,'lambda'和':'中间的元素个素就是所说的参数个数。':'后面的是所要进行的表达式。
    print(result(5)) #输出25

  这里顺便拓展一下lambda和map函数一起用的例子,以熟悉一下map等内置函数:
  a、map():是python的一个内置函数,基本格式是:map(func,seq):func是一个函数对象,seq是一个序列对象,seq的每个元素按照从左到右的顺序依次被取出来,塞到func函数里,并将func的返回值依次存到一个列表里。
    eg:>>>numbers = [1,3,6]
      >>>newNumbers = tuple(map(lambda x:x,numbers))
      >>>print(newNumbers) #输出:(1,3,6)

    eg:>>> numbers = [0,1,2,3,4]
      >>> map(add,numbers) #输出[1, 2, 3, 4, 5]
      >>> map(lambda x: x + 1,numbers) #输出[1, 2, 3, 4, 5]

  b、filter():根据条件过滤选择出想要的。
    eg:>>> numbers = range(-4,4)
      >>> list(filter(lambda x: x > 0,numbers)) #输出[1,2,3]

  c、reduce():reduce 函数的第一个参数是一个函数,第二个参数是序列类型的对象,将函数按照从左到右的顺序作用在序列上。
    eg:>>> reduce(lambda x,y: x+y,[1,2,3,4]) #输出10

  reduce()和map()的区别:map相当于是上下运算的,而reduce是从左到右逐个元素进行运算。
    eg:>>> list1 = [1,2,3,4]
      >>> list2 = [5,6,7,8]
      >>> list(map(lambda x,y: x + y,list1,list2))#输出[6, 8, 10, 12]

免责声明:文章转载自《python匿名函数简记》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Mybatis框架基础支持层——反射工具箱之实体属性Property工具集(6)05 dic的增删改查 字典的嵌套 考试题dic.get()的相关使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

日志回滚:python(日志分割)

日志回滚:python 什么是日志回滚? 答: 将日志信息输出到一个单一的文件中,随着应用程序的持续使用,该日志文件会越来越庞大,进而影响系统的性能。因此,有必要对日志文件按某种条件进行切分,要切分日志文件。 分割日志的触发条件:大小、日期,或者大小加上日期。 说是切分,实际上是,当一个日志文件达到触发条件后,对日志文件进行重命名,之后再新建原来名称的日志...

pip 安装

一、说明 CentOS6.5自带python环境为2.6,公司的python环境为2.7. 为了避免出现以后代码出现版本差异,所以把自带的2 .6版本升级到了2.7,过程十分曲折。。。。 中途遇到的问题和解决方法请点击:Python安装时遇到的问题 二、安装步骤 1、下载安装包 官方下载地址为:https://www.python.org/download...

[python]django rest framework写POST和GET接口

版本声明 python3.6.5 Django-2.0.6 djangorestframework-3.8.2 mysqlclient-1.3.12 1.写一个登录接口,不多说,直接上代码 login_models.py # -*- coding: utf-8 from django.db import models # Create your mode...

python的if判断&两重判断

# python的if判断&两重判断# python编程中if语句用于控制程序的执行 基本形式为:#if 判断条件: # 执行语句...# else: # 执行语句...#其中“判断条件”成立时(非零),则执行后面的语句,而执行的内容可以多行。以缩进来区分同一范围# else为可选语句 在判断条件不成立时执行相关的语句# python程...

python 获取当天日期

取得时间相关的信息的话,要用到python time模块,python time模块里面有很多非常好用的功能,你可以去官方文档了解下,要取的当前时间的话,要取得当前时间的时间戳,时间戳好像是1970年到现在时间相隔的时间。你可以试下下面的方式来取得当前时间的时间戳:import timeprint time.time()输出的结果是:1357723206....

python(八):python使用lmdb数据库

一、入门代码 LMDB的全称是Lightning Memory-Mapped Database(快如闪电的内存映射数据库),它的文件结构简单,包含一个数据文件和一个锁文件: LMDB文件可以同时由多个进程打开,具有极高的数据存取速度,访问简单,不需要运行单独的数据库管理进程,只要在访问数据的代码里引用LMDB库,访问时给文件路径即可。 让系统访问大量小文...