python之lambda函数/表达式
lambda函数也叫匿名函数,允许快速定义单行函数。通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。
格式
lambda argument_list: expression
lambda与def的区别
1)def创建的方法是有名称的,而lambda没有;
2)lambda会返回一个函数对象,但这个对象不会赋给一个标志符,而def则会把函数对象赋值给一个变量(函数名);
3)lambda只是一个表达式,而def是一个语句;
4)lambda表达式“:”后面只能有一个表达式,而def则可以有多个;
5)if、for、print等语句不能用于lambda中;
6)lambda一般用于定义简单的函数;
7)lambda函数不能共享给别的程序调用;
lambda使用
1、应用在函数式编程中
Python提供了很多函数式编程的特性,如:map、reduce、filter、sored等函数都支持函数做为参数,lambda函数就可以应用在函数式编程中。
# 需求:将列表中的元素按照绝对值大小进行升序排列
list1 = [3,5,-4,-1,0,-2,-6]
sorted(list1, key=lambda x: abs(x))
2、应用在闭包中
如果在一个函数的内部定义了另一个函数,外部的我们叫他外函数,内部的我们叫他内函数。
闭包:在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。
def get_y(a,b):
return lambda x:a*x+b
y1 = get_y(2,1)
y1(2) # 结果为5
python之lambda函数/表达式的更多相关文章
- Python的lambda函数与排序
Python的lambda函数与排序 2010-03-02 15:02 2809人阅读 评论(0) 收藏 举报 lambdapythonlistlispclass工作 目录(?)[+] 前几天 ...
- 细说Python的lambda函数用法,建议收藏
细说Python的lambda函数用法,建议收藏 在Python中有两种函数,一种是def定义的函数,另一种是lambda函数,也就是大家常说的匿名函数.今天我就和大家聊聊lambda函数,在Pyth ...
- 14.在Python中lambda函数是什么
在Python中lambda函数是什么? It is a single expression anoymous function often used as inline function. lamb ...
- Python 之 lambda 函数
Python 支持一种单行匿名函数,这种函数称为 lambda,它最初借鉴自 Lisp. >>> add = lambda x, y: x +y >>> add(3 ...
- python之lambda函数
今天复习python,看见一个关于lambda函数的例子,在python中使用lambda在某些时候十分方便,因为不必为了实现某些简单功能而新建一个函数.但是有这么一个lambda实例令我有些疑惑,现 ...
- 关于python中lambda 函数使用小结
例子: 如果定义普通函数,一般都是这样写: def:ds(x): return 2*x+1 调用即: ds(5) 如果用lambda函数就是这么写,就是一句话: g =lambda x:2*x+1 调 ...
- python 19 lambda函数
转自http://www.cnblogs.com/BeginMan/p/3178103.html 一.lambda函数 1.lambda函数基础: lambda函数也叫匿名函数,即,函数没有具体的名称 ...
- python之Lambda函数---笔记
<Python3 程序开发指南> Lambda函数,是一个匿名函数,创建语法: lambda parameters:express parameters:可选,如果提供,通常是逗号分隔的变 ...
- python中lambda函数的笔记
学习网址为:https://foofish.net/lambda.html 通过lambda来定义一个匿名的函数,该匿名函数冒号前面的为函数传入值,冒号后面跟着的就是函数表达式. 例: lambda ...
随机推荐
- ADO.NET 4.5中的异步与流特性
.NET 4.5为仍在选择直接与DataReader系列类打交道的.NET开发人员带来了一些新的异步与流特性支持.SqlDataReader允许开发人员在减少一些便利性的基础上获得更好的性能.例如,该 ...
- JVM(三)JVM的ClassLoader类加载器
1.类加载的生命周期 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括: (1)加载 (2)验证 (3)准备 (4)解析 (5)初始化 (6)使用 (7)卸载 一共7个阶段.其中验 ...
- C#基础篇三流程控制1
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace P01R ...
- mpvue图片轮播遇到的问题
小程序官方写法: <swiper indicator-dots="{{indicatorDots}}" autoplay="{{autoplay}}" i ...
- MVC源码分析 - Action查找和过滤器的执行时机
接着上一篇, 在创建好Controller之后, 有一个 this.ExecuteCore()方法, 这部分是执行的. 那么里面具体做了些什么呢? //ControllerBaseprotected ...
- Servlet 监听器Listener详解
转自:http://blog.csdn.net/u012228718/article/details/41730799 一.简介 (一)概述 1.Listener 用于监听 Javaweb程序中的事件 ...
- ajax传递数组到后台,js传递数组到后台
用angular做商品搜索功能,后台接口那边过滤条件必须传递数组过去,结果比较尴尬的事情发生了,每次传递数组过去,查看请求发送的数据,自动被转成了对象,很头疼. 数据传递前 传递后我查看了请求的数据 ...
- 在FireFox浏览器上,用stopImmediatePropagation阻止冒泡鼠标滚动事件
楔子 是不是在火狐用stopPropagation不太满意 很久没有笑过又不知为何 既然不快乐又不喜欢这里 不如一路向西用stopImmediatePropagation(其实我对浏览器的兼容性看不顺 ...
- js实现时间日期的格式化
前几天参加cvte的笔试,碰到了这样一道题目: //请写一个时间日期格式化的函数,具体要求如下: function format(date,"yyyy-mm-dd HH-mm-ss" ...
- Dev-FAT-UAT-PRO
DEV Development environment FAT Feature Acceptance Test environment UAT User Acceptance Test environ ...