python学习之Lambda表达式

“Lambda 表达式”(lambda expression)是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(注意和数学传统意义上的不同)。

1、python中的lambda表达式

Lambda表达式是Python中一类特殊的定义函数的形式,使用它可以定义一个匿名函数。与其它语言不同,Python的Lambda表达式的函数体只能有唯一的一条语句,也就是返回值表达式语句。其语法如下:

lambda 形参列表 : 函数返回值表达式语句

下面是个Lambda表达式的例子:


1

2

3

4

#!/usr/bin/envpython

li=[{"age":20,"name":"def"},{"age":25,"name":"abc"},{"age":10,"name":"ghi"}]

li=sorted(li,key=lambda x:x["age"])

print(li)

如果不用Lambda表达式,而要写成常规的函数,那么需要这么写:


1

2

3

4

5

6

#!/usr/bin/envpython

def comp(x):

    return x["age"]

li=[{"age":20,"name":"def"},{"age":25,"name":"abc"},{"age":10,"name":"ghi"}]

li=sorted(li,key=comp)

print(li)

2、在c#、Java、c++中也有lambda表达式

时间: 2024-11-03 21:29:40

python学习之Lambda表达式的相关文章

python学习2 lambda表达式

学习C#的,对这个就特别熟悉了 lambda函数,它没有名字,只有参数和表达式: lambda  args: expression def func1(func,arg): return func(arg) print func1(lambda a:'hello '+a, 'aven') input() 和.Net相比,这个lambda只支持表达式(expression)而不支持语句块(statement)

深入学习Java8 Lambda表达式 -- 从函数式接口说起

希望本文能够成为Java8 Lambda表达式的快速入门指南. 函数式接口 理解Functional Interface(函数式接口,以下简称FI)是学习Java8 Lambda表达式的关键所在,所以放在最开始讨论.FI的定义其实很简单:任何接口,如果只包含唯一一个抽象方法,那么它就是一个FI.为了让编译器帮助我们确保一个接口满足FI的要求(也就是说有且仅有一个抽象方法),Java8提供了@FunctionalInterface注解.举个简单的例子,Runnable接口就是一个FI,下面是它的源

c++ 11学习笔记--Lambda 表达式(对比测试Lambda ,bind,Function Object)

所有c++ coder都应该为这个语法感到高兴,说的直白一点,Lambda 表达式就是函数对象的语法糖. 还是直接看对比栗子吧,抄袭的是msdn的官网 该示例使用 for_each 函数调用中嵌入的 lambda 向控制台打印 vector 对象中的每个元素是偶数还是奇数. 使用lambda #include <algorithm> #include <iostream> #include <vector> using namespace std; int main()

Java语言编程学习之Lambda表达式设计和架构的原则[图]

Java语言编程学习之Lambda表达式设计和架构的原则[图]:大家都知道,Lambda表达式是对Java语言的一点简单改进,在JDK标准类库中,运行它的方式各种各样.但是大多数的Java代码都不是由开发JDK的程序猿写的,而是像我们这样的普通程序猿.很多人都会碰到过这样的情况:你实现了一个新功能或修复了一个缺陷,并且对自己的修改很满意.但其他人看了你的代码后--也许发生在代码审查环节,完全不买账!对于什么是好代码,什么是坏代码,存在分歧很正常!设计模式的改变设计模式是人们熟悉的另一种设计思想,

JAVA8学习——深入浅出Lambda表达式(学习过程)

JAVA8学习--深入浅出Lambda表达式(学习过程) lambda表达式: 我们为什么要用lambda表达式 在JAVA中,我们无法将函数作为参数传递给一个方法,也无法声明返回一个函数的方法. 在JavaScript中,函数参数是一个函数,返回值是另一个函数的情况下非常常见的,JavaScript是一门非常典型的函数式编程语言,面向对象的语言 //如,JS中的函数作为参数 a.execute(callback(event){ event... }) Java匿名内部类实例 后面补充一个匿名内

python中的lambda表达式与三元运算

1 >>> def add(x,y): #定义一个加法函数 2 return x+y #返回两个参数的相加的值 3 4 >>> z=f(3,4) 5 >>> print(z) 6 7 #调用加法函数返回7 7 >>> lambda x,y:x+y 8 <function <lambda> at 0x0000020F385B86A8> 9 #可以看到lambda是一个 function(函数)类对象 10 >

Python中的Lambda表达式

Lambda表达式在python程序中是一种很常见的匿名方法的书写形式,它书写起来非常简单,但是牺牲了可读性.下面来看一下Lambda的简单介绍. 语法 lambda [parameter_list]:expression Lambda表达式的返回值是一个函数,[parameter_list]是函数的参数,expression是具体的操作.它对应的非匿名方法的书写方式为: def function([parameter_list]): expression 如下面的例子: #Function d

Python函数:lambda表达式和过滤器

Lambda表达式是Python中一类特殊的定义函数的形式,使用它可以定义一个匿名函数.Python的Lambda表达式的函数体只能有唯一的一条语句,也就是返回值表达式语句. 语法:lambda 参数:返回值 参数个数不限 使用lambda表达式可以简化函数定义过程,也不必考虑函数命名的问题,增强代码可读性,一箭三雕 过滤器filter 语法 filter(function , sequence) 对sequence中的对象依次执行function,将执行结果为True的item组成一个List

Python中的Lambda表达式小析

Lambda表达式在Python中经常使用到,在此总结下Lambda表达式的常用方法. 首先,要明白Lambda表达在Python中是作为一个匿名函数的构造器而存在.其次,要明白Lambda表达式的常用场景是Lambda表达式对应函数的使用次数非常有限(因此,没有必要专门定义一个非匿名函数),同时保证了代码的简洁性. 最简单的一个Lambda表达式例子和对应的非匿名函数: f = lambda x: x + 1 print ( f(1) ) def h (x): return x + 1 pri