Python 如何定义匿名或内联函数
问题
你想为 sort() 操作创建一个很短的回调函数,但又不想用 def 去写一个单行函数, 而是希望通过某个快捷方式以内联方式来创建这个函数。
解决方案
当一些函数很简单,仅仅只是计算一个表达式的值的时候,就可以使用lambda表达式来代替了。比如:
>>> add = lambda x, y: x + y >>> add(2,3) 5 >>> add('hello', 'world') 'helloworld' >>>
这里使用的lambda表达式跟下面的效果是一样的:
>>> def add(x, y): ... return x + y ... >>> add(2,3) 5 >>>
lambda表达式典型的使用场景是排序或数据reduce等:
>>> names = ['David Beazley', 'Brian Jones', ... 'Raymond Hettinger', 'Ned Batchelder'] >>> sorted(names, key=lambda name: name.split()[-1].lower()) ['Ned Batchelder', 'David Beazley', 'Raymond Hettinger', 'Brian Jones'] >>>
讨论
尽管lambda表达式允许你定义简单函数,但是它的使用是有限制的。 你只能指定单个表达式,它的值就是最后的返回值。也就是说不能包含其他的语言特性了, 包括多个语句、条件表达式、迭代以及异常处理等等。
你可以不使用lambda表达式就能编写大部分python代码。 但是,当有人编写大量计算表达式值的短小函数或者需要用户提供回调函数的程序的时候, 你就会看到lambda表达式的身影了。
以上就是Python 如何定义匿名或内联函数的详细内容,更多关于Python 定义匿名或内联函数的资料请关注我们其它相关文章!
相关推荐
-
什么是Python中的匿名函数
匿名函数 lambda x , y : x+y 1.匿名的目的就是要没有名字,给匿名函数赋给一个名字是没有意义的. 2.匿名函数的参数规则.作用域关系与有名函数是一样的. 3.匿名函数的函数体通常应该是 一个表达式,该表达式必须要有一个返回值. f=lambda x,n:x ** n print(f(2,3)) lambda匿名函数的应用:**max,min,sorted,map,reduce,filter** 求工资最高的人:max salaries={ 'egon':3000, 'alex'
-
python匿名函数lambda原理及实例解析
这篇文章主要介绍了python匿名函数lambda原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 #-*- coding:utf-8 -*- #__author__ = "www.iplaypy.com" # 普通python函数 def func(a,b,c): return a+b+c print func(1,2,3) # 返回值为6 # lambda匿名函数 f = lambda a,b,c:a+b+c
-
基于python内置函数与匿名函数详解
内置函数 Built-in Functions abs() dict() help() min() setattr() all() dir() hex() next() slice() any() divmod() id() object() sorted() ascii() enumerate() input() oct() staticmethod() bin() eval() int() open() str() bool() exec() isinstance() pow() super
-
Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析
本文实例讲述了Python函数的返回值.匿名函数lambda.filter函数.map函数.reduce函数用法.分享给大家供大家参考,具体如下: 函数的返回值: 函数一旦执行到 return,函数就会结束,并会返回return 后面的值,如果不使用显式使用return返回,会默认返回None . return None可以简写为 return. def my_add(x,y): z=x+y return z print(my_add(1,2))##打印的是返回值 def my_add_
-
Python匿名函数及应用示例
本文实例讲述了Python匿名函数及应用.分享给大家供大家参考,具体如下: lambda关键词能创建?型匿名函数.这种函数得名于省略了def声明函数的标准步骤. 代码如下: #定义lambda函数 sum = lambda arg1,arg2:arg1+arg2 #调用函数 totle = sum(3,5) print ('totle = %d'%totle) 运行如下 totle = 8 Lambda函数能接收任何数量的参数但只能返回一个表达式的值 匿名函数不能直接调用print,因为lamb
-
深入浅析Python 函数注解与匿名函数
函数注解与匿名函数 关于函数参数的定义,调用以及函数参数的内容,在下面的文章中已经做了初步的介绍,有需要的可以访问进行了解: Python 函数 函数注解 在编写函数,当下肯定清楚函数如何使用的.若是函数较为复杂,过段时间,编写者有可能需要花一段时间去重新了解函数的使用,那其他使用者也同样会遇到这样的困惑. 所以当编写完函数后,可以为函数的参数添加一些额外的信息.这里给函数参数添加注解,能够提示程序员如何正确使用这个函数.如下示例: def add(x:int, y:int) -> int: '
-
Python3匿名函数lambda介绍与使用示例
概述 匿名函数,顾名思义即没有名称的函数,和def定义的函数的最大区别在于匿名函数创建后返回函数本身(即匿名函数不需要return来返回值),表达式本身结果就是返回值,而def创建后则赋值给一个变量名,在Python中,我们利用关键词lambda创建匿名函数,以下是匿名函数lambda表达式的形式: lambda arg1,arg2,.....argn:expression 以下为一些lambda的特点: lambda 是一个表达式,而不是一个语句,即我们可以在任何可以使用表达式的场景一样使用l
-
浅谈python之高阶函数和匿名函数
map() map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回. def func(x): return x*x r = map(func, [1, 2, 3, 4, 5]) print(type(r)) r = list(r) print(r) 输出结果: <class 'map'> [1, 4, 9, 16, 25] 可以看出,map让函数func作用于列表的每一项,使列表的每一项都被函数func
-
详解Python匿名函数(lambda函数)
匿名函数lambda Python使用lambda关键字创造匿名函数.所谓匿名,意即不再使用def语句这样标准的形式定义一个函数.这种语句的目的是由于性能的原因,在调用时绕过函数的栈分配.其语法是: lambda [arg1[, arg2, ... argN]]: expression 其中,参数是可选的,如果使用参数的话,参数通常也会在表达式之中出现. 下面举例来说明lambda语句的使用方法(无参数). # 使用def定义函数的方法 def true(): return True #等价的l
-
python ---lambda匿名函数介绍
lambda特性:"一个语法,三个特性,四个用法" 一个语法 在Python中,lambda的语法是唯一的.其形式如下: lambda argument_list: expression 其中,lambda是Python预留的关键字,argument_list和expression由用户自定义.具体介绍如下. 1.这里的argument_list是参数列表.它的结构与Python中函数(function)的参数列表是一样的.具体来说,argument_list可以有非常多的形式.例如:
随机推荐
- Tomcat开启JMX服务方法介绍
- IOS UITableView颜色设置的实例详解
- iOS中定位(location manager )出现log日志的解决办法
- jquery ajax 检测用户注册时用户名是否存在
- 关于preg_replace函数的问题讲解
- java 实现定时的方法及实例代码
- python爬虫实现教程转换成 PDF 电子书
- Linux中更改转移mysql数据库目录的步骤
- PHP服务器页面间跳转实现方法
- c#哈希算法的实现方法及思路
- C#实现对AES加密和解密的方法
- 使网页成黑白色调的滤镜
- php读取富文本的时p标签会出现红线是怎么回事
- c++中#include <>与#include""的区别详细解析
- 在SQL中使用convert函数进行日期的查询的代码
- js和jquery分别验证单选框、复选框、下拉框
- 深入理解js数组的sort排序
- 瑞星专家教你4招保障电脑安全
- Java 关键字 速查表介绍
- js获取input标签的输入值实现代码