细说Python Lambda函数的用法,建议收藏!
摘要:今天我就和大家聊聊lambda函数,在Python编程中,大家习惯将其称为表达式。
名称是用于引用或寻址任何实体的约定。我们周围的几乎所有事物都有名字。编程领域也与此一致。但这是必须命名的吗?还是您可以拥有“匿名”商品?答案是肯定的。Python提供了Lambda函数,也称为匿名函数,实际上是无名的。因此,让我们按以下顺序继续学习Python的这些“匿名之谜”。
- Why are Python Lambda Functions required?
- What are Python Lambda Functions?
- How to write Lambda Functions?
- How do Anonymous functions reduce the size of the code?
- Python Lambda functions within user defined functions
- How to use Anonymous functions within:
- filter()
- map()
- reduce()
因此,让我们开始:)
为什么要使用Python Lambda函数?
当您只需要一次使用某些功能时,匿名功能的主要目的就会显现出来。可以在任何需要的地方创建它们。由于这个原因,Python Lambda函数也称为抛出函数,与其他预定义函数(例如filter(),map()等)一起使用。与普通的python函数。
为了证明这一点,让我们继续学习Python Lambda函数。
什么是Python Lambda函数?
Python Lambda函数是没有任何名称的函数。它们也称为匿名或无名功能。“ lambda”一词不是名称,而是关键字。此关键字指定后面的函数是匿名的。
现在您已经知道这些匿名函数指的是什么,让我们进一步了解一下如何编写这些Python Lambda函数。
如何用Python编写Lambda函数?
使用lambda运算符创建Lambda函数,其语法如下:
句法:
lambda参数:表达式
Python lambda函数可以具有任意数量的参数,但只需要一个表达式。输入或自变量可以从0开始,并可以达到任何限制。就像任何其他函数一样,具有不带输入的lambda函数也很好。因此,您可以使用以下任何格式的lambda函数:
例子:
lambda:“指定目的”
在这里,lambda函数不接受任何参数。
例子:
拉姆达一个1:“指定使用的1 “
在这里,lambda接受一个输入,即1。
同样,您可以具有lambda a 1,a 2,a 3 ..a n。
让我们举几个例子来证明这一点:
范例1:
a = lambda x: x*x
print(a(3))
输出: 9
范例2:
a = lambda x,y: x*y
print(a(3,7))
输出: 21
如您所见,我在这里举了两个例子。第一个示例仅使用带有一个表达式的lambda函数,而第二个示例具有传递给它的两个参数。请注意,两个函数都有一个表达式,后跟参数。因此,在需要多行表达式的地方不能使用lambda函数。
另一方面,普通的python函数可以在其函数定义中使用任意数量的语句。
匿名函数如何减少代码的大小?
在比较所需的代码量之前,让我们首先写下常规函数的语法,然后将其与前面所述的lambda函数的语法进行比较。
Python中的任何常规函数都是使用def关键字定义的,如下所示:
句法:
def function_name(parameters):
语句
如您所见,lambda函数所需的代码量比普通函数少得多。
让我们用现在的普通函数重写前面的示例。
例子:
def my_func(x):
return x*x
print(my_func(3))
输出: 9
如您所见,在上面的示例中,我们需要在my_func中使用return语句来计算3的平方值。相反,lambda函数不使用此return语句,而是使用匿名函数的主体在冒号后跟函数本身写在同一行。因此,函数的大小小于my_func的大小。
但是,上述示例中的lambda函数是使用其他一些变量a调用的。这样做是因为这些函数是无名的,因此需要调用某些名称。但是,当您需要实际分配其他名称来调用它们时,为什么要使用这样的无名函数,这一事实似乎令人困惑?当然,在为我的函数分配名称a之后,它不再不再是无名的了!正确的?
这是一个合理的问题,但重点是,这不是使用这些匿名函数的正确方法。
匿名函数最好在其他将函数用作参数或返回函数作为输出的其他高阶函数中使用。为了证明这一点,让我们现在继续进行下一个主题。
用户定义函数中的Python Lambda函数:
如上文所述,lambda函数可在其他函数中使用,以标记出最大的优势。
以下示例由new_func组成,这是一个带有一个参数x的常规python函数。然后将此参数添加到通过lambda函数提供的未知参数y中。
例子:
def new_func(x):
return(lambda y: x+y)
t=new_func(3)
u=new_func(2)
print(t(3))
print(u(3))
输出:
6
5
如您所见,在上面的示例中,每当我们使用new_func()时,都会调用new_func中存在的lambda函数。每次,我们都可以将单独的值传递给参数。
既然您已经了解了如何在高阶函数中使用匿名函数,那么让我们继续了解它的最流行用法之一是在filter(),map()和reduce()方法中。
如何在filter(),map()和reduce()中使用匿名函数:
filter()中的匿名函数:
筛选():
filter()方法用于在另一个作为参数传递的函数的帮助下,过滤给定的iterables(列表,集合等),以测试所有元素为真还是假。
该函数的语法为:
句法:
过滤器(函数,可迭代)
现在考虑以下示例:
例子:
my_list = [2,3,4,5,6,7,8]
new_list = list(filter(lambda a: (a/3 == 2), my_list))
print(new_list)
输出: [6]
在这里,my_list是可迭代值的列表,该值传递给过滤器函数。此函数使用lambda函数检查列表中是否有任何值(除以3后等于2)。输出由满足匿名函数中存在的表达式的列表组成。
地图():
Python中的map()函数是将给定函数应用于所有可迭代对象并返回新列表的函数。
句法:
地图(函数,可迭代)
让我们以一个示例来演示lambda函数在map()函数中的用法:
例子:
my_list = [2,3,4,5,6,7,8]
new_list = list(map(lambda a: (a/3 != 2), li))
print(new_list)
输出:
[True,True,True,True,False,True,True]
上面的输出显示,只要可迭代变量的值除以3,就不等于2,则返回的结果应为True。因此,对于my_list中的所有元素,当条件更改为False时,它将返回true(除了值6之外)。
减少():
reduce()函数用于将某些其他函数应用于作为参数传递给它的元素列表,并最终返回单个值。
该函数的语法如下:
句法:
减少(功能,顺序)
例子:
from functools import reduce
reduce(lambda a,b: a+b, [23,21,45,98])
下图描述了上面的示例:

输出: 187
输出清楚地表明,列表的所有元素都被连续添加以返回最终结果。
本文分享自华为云社区《从零开始学python | 什么是Lambda函数以及如何使用它们?》,原文作者:Yuchuan 。
细说Python Lambda函数的用法,建议收藏!的更多相关文章
- python lambda表达式简单用法【转】
python lambda表达式简单用法 1.lambda是什么? 看个例子: g = lambda x:x+1 看一下执行的结果: g(1) >>>2 g(2) >>& ...
- python format()函数的用法
Python format() 函数的用法 复制自博主 chunlaipiupiupiu 的博客,如有侵权,请联系删除 python中format函数用于字符串的格式化 通过关键字 1 print(' ...
- Python eval()函数的用法
Python eval()函数的用法 eval(str)函数很强大,官方解释为:将字符串str当成有效的表达式来求值并返回计算结果.所以,结合math当成一个计算器很好用. eval()函数常见作用有 ...
- C++ lambda函数及其用法(转)
由于接触C++不久,很多东西比较陌生,今天看阿里云OSS的C++ SDK文件下载部分例子,发现有如下lambda表达式用法,故了解一下相关知识 /*获取文件到本地文件*/ GetObjectReque ...
- [编程基础] Python lambda函数总结
Python lambda函数教程展示了如何在Python中创建匿名函数.Python中的匿名函数是使用lambda关键字创建的. 文章目录 1 介绍 1.1 简单使用 1.2 Python lamb ...
- Python Lambda 的简单用法
下面代码简单举例介绍以下 lambda的用法. from functools import reduce #1 python lambda会创建一个函数对象,但不会把这个函数对象赋给一个标识符,而de ...
- python - Lambda函数 匿名函数
Lambda 匿名函数 python 使用 lambda 来创建匿名函数. lambda只是一个表达式,函数体比def简单很多. lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda ...
- 【Python从入门到精通】(十一)Python的函数的方方面面【收藏下来保证有用!!!】
您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本文主要介绍Python的函数,函数的定义,使用,可变参数等等都有详细介绍. 干货满满,建议收藏,需要用到时常看看. 小伙伴们如有问题及需要,欢迎 ...
- Python lambda函数
python允许定义单行的小函数,定义lambda函数的形式如下: lambda 参数:表达式lambda函数默认返回表达式的值,可接收任意个参数,包括可选参数,但是表达式只有一个.
- python lambda函数详细解析(面试经常遇到)
1 作用:通常是用来在python中创建匿名函数的 2 格式: lambda 参数[,参数] : 表达式 3 注意: (1)lambda定义的是单行函数, 如果需要复杂的函数,应该定义普通函数 (2) ...
随机推荐
- 《最新出炉》系列初窥篇-Python+Playwright自动化测试-21-处理鼠标拖拽-番外篇
1.简介 前边宏哥拖拽有提到那个反爬虫机制,加了各种参数,以及加载js脚本文件还是有问题,偶尔宏哥好像发现了解决问题的办法,看到了黎明的曙光,宏哥就说试一下看看行不行,万一实现了.结果宏哥试了结果真的 ...
- 读写分离-mycat
读写分离-mycat: 安装mycat: http://dl.mycat.io/1.6.7.1/Mycat-server-1.6.7.1-release-20190627191042-linux.ta ...
- PTA乙级1099
#include"bits/stdc++.h" using namespace std; int prime(int x) { if(x<2) return 0; for(i ...
- 微信小程序:音乐播放器
音乐资源使用的是QQ音乐资源.图片资源使用的网易云音乐的专辑图片. HTML: <view class="container"> <div wx:for=&quo ...
- 国企项目就用国产的 Solon Java Framework,v2.5.12 发布
Solon 是什么框架? Java 新的生态级应用开发框架.国产.从零开始构建,有自己的标准规范与开放生态(历时五年,具备全球第二级别的生态规模).与其他框架相比,解决了两个重要的痛点:启动慢,费内存 ...
- 栈与队列应用:迷宫问题(DFS非最短路径)
//先输入行列,在输入迷宫 以-1 -1 结束 #include<stdio.h> #include<stdlib.h> #define MAXSIZE 100 #define ...
- 一种全新的日志异常检测评估框架:LightAD
本文分享自华为云社区<[AIOps]一种全新的日志异常检测评估框架:LightAD,相关成果已被软工顶会ICSE 2024录用>,作者: DevAI. 深度学习(DL)虽然在日志异常检测中 ...
- Java——设计模式
一.概述 设计模式是历代程序员总结出的经验 二.分类 创建型模式:简单工厂模式 工厂方法模式 单例模式:饿汉式(开发) 懒汉式(面试) 行为型模式 结构型模式 三.简单工厂模式 一个工厂中可以创建很多 ...
- 从零开始的 dbt 入门教程 (dbt-core 基础篇)
最近一直在处理数据分析和数据建模的事情,所以接触了 dbt 等数据分析的工具,国内目前对于 dbt 比较详细的资料不多,所以打算写四道五篇 dbt 相关的文章,本文属于 dbt 系列的第一篇,本篇主要 ...
- FastJson、Jackson、Gson进行Java对象转换Json
- Java对象转换Json的细节处理前言Java对象在转json的时候,如果对象里面有属性值为null的话,那么在json序列化的时候要不要序列出来呢?对比以下json转换方式一.fastJson1 ...