Python lambda和Python def区别分析

python支持一种有趣的语法,它允许你快速定义单行的最小函数。这些叫做lambda的函数,是从lisp借用来的,可以用在任何需要函数的地方。

lambda的语法时常会使人感到困惑,lambda是什么,为什么要使用lambda,是不是必须使用lambda?

>>> def f(x):...   return x+2...>>> f(1)3>>> f = lambda x:x+2>>> f(1)3>>> (lambda x:x+2)(1)3

登录后复制

Python def和Python lambda它们有相似点也有不同点。
相似点: 这两个很重要的相似点就是都可以定义一些固定的方法或者是流程,供给程序来调用,比如上面例子中定义一个变量加2的方法。 输出的结果都是3,如果你要完成一些固定的流程的话,上面几种你都可以任意选择。

上面是相同点,那么有那些不同点?
它们的主要不同点是Python def是语句而Python lambda是表达式。lambda简化了函数定义的书写形式,使代码更为简洁。但是使用函数的定义方式更为直观,易理解。

Python里面语句是可以嵌套的,比如你需要根据某个条件来定义方法,那只能用def。用lambda就会报错。

>>> if a==1:...   def info():...     print '1'*5... else:...   def info2():...     print 'info2'

登录后复制

而有的时候你需要在python表达式里操作的时候,那需要用到表达式嵌套,这个时候Python def就不能得到你想要的结果,那只能用Python lambda,如下例子:
输出e字符串出现频率最高的字母:

>>> str='www.linuxeye.com linuxeye.com'>>> L = ([(i,str.count(i)) for i in set(str)])[(' ', 1), ('c', 2), ('e', 4), ('i', 2), ('m', 2), ('l', 2), ('o', 2), ('n', 2), ('u', 2), ('w', 3), ('y', 2), ('x', 2), ('.', 3)]>>> L.sort(key = lambda k:k[1],reverse = True)>>> print L[0][0]e

登录后复制

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2292274.html

(0)
上一篇 2025年2月28日 01:35:24
下一篇 2025年2月24日 23:39:11

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Python re模块介绍

    python中转义字符 正则表达式使用反斜杠” “来代表特殊形式或用作转义字符,这里跟Python的语法冲突,因此,Python用” \\ “表示正则表达式中的” “,因为正则表达式中如果要匹配” “,需要用来转义,变成” \ “,而Pyt…

    编程技术 2025年2月28日
    200
  • Python内置函数之filter map reduce介绍

    python内置了一些非常有趣、有用的函数,如:filter、map、reduce,都是对一个集合进行处理,filter很容易理解用于过滤,map用于映射,reduce用于归并. 是python列表方法的三架马车。 1. filter函数的…

    编程技术 2025年2月28日
    200
  • Python os模块介绍

    os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 登录后复制 os.chdir(“dirname”) 改变当前脚本工作目录;相当于shell下cd 登录后复制 os.curdir 返回当前目录: (‘.’) 登…

    编程技术 2025年2月28日
    200
  • Python Queue模块详解

    python中,队列是线程间最常用的交换数据的形式。queue模块是提供队列操作的模块,虽然简单易用,但是不小心的话,还是会出现一些意外。 创建一个“队列”对象import Queueq = Queue.Queue(maxsize = 10…

    编程技术 2025年2月28日
    200
  • 跟老齐学Python之使用Python操作数据库(1)

    在上一讲中已经连接了数据库。就数据库而言,连接之后就要对其操作。但是,目前那个名字叫做qiwsirtest的数据仅仅是空架子,没有什么可操作的,要操作它,就必须在里面建立“表”,什么是数据库的表呢?下面摘抄字维基百科对数据库表的简要解释,要…

    编程技术 2025年2月28日
    200
  • Python标准库os.path包、glob包使用实例

    os.path包 os.path包主要用于处理字符串路径,比如’/home/zikong/doc/file.doc’,提取出有用的信息。 复制代码 代码如下:import os.pathpath = ‘/…

    编程技术 2025年2月28日
    200
  • Python标准库之多进程(multiprocessing包)介绍

    在初步了解python多进程之后,我们可以继续探索multiprocessing包中更加高级的工具。这些工具可以让我们更加便利地实现多进程。 进程池 进程池 (Process Pool)可以创建多个进程。这些进程就像是随时待命的士兵,准备执…

    2025年2月28日
    200
  • Python标准库之随机数 (math包、random包)介绍

    我们已经在python运算中看到python最基本的数学运算功能。此外,math包补充了更多的函数。当然,如果想要更加高级的数学功能,可以考虑选择标准库之外的numpy和scipy项目,它们不但支持数组和矩阵运算,还有丰富的数学和物理方程可…

    编程技术 2025年2月28日
    200
  • Python判断操作系统类型代码分享

    经常地我们需要编写跨平台的脚本,但是由于不同的平台的差异性,我们不得不获得当前所工作的平台(操作系统类型)。 代码如下: 复制代码 代码如下:import platform def TestPlatform():    print (&#8…

    编程技术 2025年2月28日
    200
  • python logging类库使用例子

    一、简单使用 复制代码 代码如下:def TestLogBasic():    import logging     logging.basicConfig(filename = ‘log.txt’, filemod…

    编程技术 2025年2月28日
    200

发表回复

登录后才能评论