python中lambda()的用法

yipeiwu_com7年前Python基础

在C++11和C#中都有匿名函数的存在。下面看看在python中匿名函数的使用。

1.lambda只是一个表达式,函数体比def简单很多。

2.lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。

3.lambda表达式是起到一个函数速写的作用。允许在代码内嵌入一个函数的定义。

例1.定义一个lambda表达式,求三个数的和

# -*- coding: UTF-8 -*-
f = lambda x,y,z:x + y + z

print f(1,2,3)
print f(4,5,6)

输出:
6
15

例2.用lambda表达式求n的阶乘

# -*- coding: UTF-8 -*-
n = 5
print reduce(lambda x,y:x*y,range(1,n+1))

输出:120

4.lambda表达式也可以用在def函数中

# -*- coding: UTF-8 -*-

def action(x):
  return lambda y:x + y
a = action(2)
print a(22)

输出:24

这里定义了一个action函数,返回了一个lambda表达式。其中lambda表达式获取到了上层def作用域的变量名x的值。

a是action函数的返回值,a(22),即是调用了action返回的lambda表达式。

这里也可以把def直接写成lambda形式。如下

# -*- coding: UTF-8 -*-

b = lambda x:lambda y:x + y
a = b(3)
print a(2)
print (b(2))(2)

输出:
5
4

好了这篇文章就结束到这了,需要的朋友可以看下面的相关内容

相关文章

python socket 超时设置 errno 10054

python socket.error: [Errno 10054] 远程主机强迫关闭了一个现有的连接。问题解决方案: 前几天使用python读取网页。因为对一个网站大量的使用urlop...

python中logging模块的一些简单用法的使用

python中logging模块的一些简单用法的使用

用Python写代码的时候,在想看的地方写个print xx 就能在控制台上显示打印信息,这样子就能知道它是什么了,但是当我需要看大量的地方或者在一个文件中查看的时候,这时候print就...

PyCharm 常用快捷键和设置方法

PyCharm 常用快捷键和设置方法

pycharm常用快捷键 1、编辑(Editing) Ctrl + Space基本的代码完成(类、方法、属性) Ctrl + Alt + Space快速导入任意类 Ctrl + Shif...

python目录操作之python遍历文件夹后将结果存储为xml

Linux服务器有CentOS、Fedora等,都预先安装了Python,版本从2.4到2.5不等,而Windows类型的服务器也多数安装了Python,因此只要在本机写好一个脚本,上传...

python实现树的深度优先遍历与广度优先遍历详解

python实现树的深度优先遍历与广度优先遍历详解

本文实例讲述了python实现树的深度优先遍历与广度优先遍历。分享给大家供大家参考,具体如下: 广度优先(层次遍历) 从树的root开始,从上到下从左到右遍历整个树的节点 数和二叉树的...