Python函数(1)lambda

一、lambda函数

1、lambda函数基础:

lambda函数也叫匿名函数,即,函数没有具体的名称,而用def创建的方法是有名称的。如下:

"""命名的foo函数"""
def foo():return ‘beginman‘  #Python中单行参数可以和标题写在一行
"""lambda关键字创建匿名函数,该表达式同以上函数"""
lambda:‘beginman‘             

上面的只是简单的用lambda创建一个函数对象,并没有保存它也没有调用它,时刻会被回收了。这里我们保存并调用:

bar = lambda:‘beginman‘
print bar()      #beginman

从上面几个例子中,可易理解Python lambda语法:

lambda [arg1[,arg2,arg3....argN]]:expression

lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值。lambda语句构建的其实是一个函数对象。

print lambda:‘beginman‘   #<function <lambda> at 0x00B00A30>

2、无参数

如果没有参数,则lambda冒号前面就没有,如以上例子。

3、有参数

def add(x,y):return x+y
add2 = lambda x,y:x+y
print add2(1,2)     #3

def sum(x,y=10):return x+y
sum2 = lambda x,y=10:x+y
print sum2(1)       #11
print sum2(1,100)   #101

二、lambda与def

上面的例子中,可知lambda函数只是创建简单的函数对象,是一个函数的单行版本,但是这种语句由于性能的原因,调用的时候绕过函数的栈分配。python lambda还有哪些和def不一样呢?

1 、python lambda会创建一个函数对象,但不会把这个函数对象赋给一个标识符,而def则会把函数对象赋值给一个变量。

如:

>>> def foo():return ‘foo()‘
>>> foo
<function foo at 0x011A34F0>

2、python lambda它只是一个表达式,而def则是一个语句。lambda表达式运行起来像一个函数,当被调用时创建一个框架对象。

三、lambda函数的用途

个人认为有以下:

1、对于单行函数,使用lambda可以省去定义函数的过程,让代码更加精简。

2、在非多次调用的函数的情况下,lambda表达式即用既得,提高性能

注意:如果for..in..if能做的,最好不要选择lambda

时间: 2024-11-07 06:36:40

Python函数(1)lambda的相关文章

Python 函数之lambda、map、filter和reduce

1.lambda函数 lambda()是Python里的匿名函数,其语法如下: lambda [arg1[, arg2, ... argN]]: expression 学习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即: # 普通条件语句 if 1 == 1: name = 'evescn' else: name = 'gm' # 三元运算 name = 'evescn' if 1 == 1 else 'gm' 对于简单的函数,也存在一种简便的表示方式,即:lambda

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

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

python函数参数+lambda表达式

1 #一个参数, 2 def show(arg): 3 print(arg) 4 show("kkkkk") #参数可以是列表,字典等,只要是一个元素就行 5 6 #两个参数 7 def show(agr,xxx): 8 print(agr,xxx) 9 show("hhhh",77777) #如果只写一个参数会报错 10 11 #默认参数,默认参数必须放在后面,即不能放在首位 12 def show(a1,a2=999): 13 print(a1,a2) 14 s

Python中的lambda函数

今天在看书的时候,看到了这样的一条语句: if isinstance(value,int) or isinstance(value,float): split_function=lambda row:row[column]>=value 对其中的lambda这个函数表示很不明白,于是看了看Python文档,文档中解释如下:   lambda An anonymous inline function consisting of a single expression which is evalua

Python自动化运维之3、初识函数及lambda

函数 函数的基础概念: 函数是python为了代码最大程度地重用和最小化代码冗余而提供的基本结构 函数是一种设计工具,它能让程序员将复杂的系统分解为可管理的部件 函数用于将相关功能打包并参数化 在python中可以创建4种函数 (1)全局函数:定义在模块 (2)局部函数:嵌套于其它函数中 (3)lambda函数:表达式,如需多次调用 (4)方法:与特定数据类型关联的函数,并且只能与数据类型关联一起使用 python提供了很多内置函数 创建函数: def functionName(arg1,arg

Python函数和函数式编程(2): 匿名函数--lambda

原文地址:http://blog.csdn.net/majianfei1023/article/details/45269343 一. lambda函数: lambda函数也叫匿名函数,函数没有具体的名称.先来看一个最简单例子: def f(x): return x * 2 g = lambda x : x * 2 看一下 f 和 g的写法有什么不同,f是定义了一个函数,传进去一个参数x,然后x*2,g是定义了一个lambda,后面跟着一个x(这个就是参数),然后跟着一个 : x * 2 (这就

Python笔记:替代case语句的字典和匿名函数(lambda)

在linux的shell中我们习惯使用case语句来做分支处理,然而Python中却省略了这个函数,经过多方查找,发现其实case语句在C语言中是通过查对应的hash表,来进行跳转的.在Python中我们可以通过三种方法来实现这种功能.1.字典:2.lambda:3.switch类. 1.字典 dictCase={'case1':func1,'case2':func2....'caseN':funcN} #注意字典中对应的是函数名,不要圆括号. 在调用的时候使用字典的get函数来实现defaul

Python基础第十一天——内置函数的补充、内置函数与lambda、递归

一.拾遗 1.生成器表达式形式的多个函数之间的协同工作. 例:做一包子吃一个包子 优点:更省内存. 以上例子的原理: 重点★★★★★ 源代码: import time import random # 装饰器 def init(func): '''生成器表达式的初始化''' def wrapper(*args,**kwargs): g=func(*args,**kwargs) next(g) return g return wrapper def cook(people,count): '''定义

python中的lambda函数用法

例1:传入多个参数的lambda函数 def sum(x,y): return x+y 用lambda来实现: p = lambda x,y:x+y print(p(4,6)) 例2:传入一个参数的lambda函数 a=lambda x:x*x print(a(3)) # 注意:这里直接a(3)可以执行,但没有输出的,前面的print不能少 例3:多个参数的lambda形式: a = lambda x,y,z:(x+8)*y-z print(a(5,6,8)) 匿名函数lambda:是指一类无需