首页 > 编程语言 >14.python-lambda函数

14.python-lambda函数

时间:2023-06-27 17:11:05浏览次数:35  
标签:输出 函数 python numbers print lambda 高阶 14

python-lambda函数

lambda 基本语法

lambda函数的基本语法形式是 lambda 参数:表达式。

lambda函数并不需要函数名,也就是我们所说的“匿名”的含义。这使得我们可以在代码的任何地方快速定义一个函数。

下面的代码展示了如何使用lambda函数。

add = lambda x, y: x + y
print(add(5, 3))  # 输出: 8

lambda函数一般功能简单:单行expression决定了lambda函数不可能完成复杂的逻辑,只能完成非常简单的功能。由于其实现的功能一目了然,甚至不需要专门的名字来说明。
下面是一些lambda函数示例:

  • lambda x, y: x+y; 函数输入是x和y,输出是它们的积x+y
  • lambda:None; 函数没有输入参数,输出是None
  • lambda *args: sum(args); 输入是任意个数的参数,输出是它们的和(隐性要求是输入参数必须能够进行加法运算)
  • lambda **kwargs: 1; 输入是任意键值对参数,输出是1

lambda与map高阶函数

高阶函数是指那些接受函数作为参数或返回函数作为输出的函数。

在Python中,常见的高阶函数有map()filter()reduce()等。

lambda函数经常和这些高阶函数一起使用,达到简洁明了的效果。

比如下面这个例子,我们使用map()函数和lambda函数,快速实现了一个将列表中所有元素翻倍的操作:

numbers = [1, 2, 3, 4, 5]
doubled = map(lambda x: x * 2, numbers)
print(list(doubled))  # 输出: [2, 4, 6, 8, 10]

lambda与filter高阶函数

filter()函数是Python的另一个常见高阶函数,它接受一个函数和一个可迭代对象作为参数,并返回一个新的可迭代对象,

新的可迭代对象中的元素都是原可迭代对象中使得函数返回值为True的元素。

下面我们来看一个使用filter()函数和lambda函数,实现数据的过滤。

numbers = [1, 2, 3, 4, 5, 6]
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers))  # 输出: [2, 4, 6]

lambda与reduce高阶函数

from functools import reduce
def add_z(x,y):
	return x+y

r_z=reduce(add_z,range(1,10))
print(r_z)
print(f"r_z 的类型:{type(r_z)}, add end:{r_z}")

Lambda函数在排序中的应用

在Python的sort()sorted()函数中,我们可以用lambda函数作为key参数,根据自定义的规则进行排序。

fruits = ['banana', 'apple', 'cherry', 'lime', 'mango']
fruits_sorted = sorted(fruits, key=lambda x: len(x))
print(fruits_sorted)  # 输出: ['lime', 'apple', 'mango', 'cherry', 'banana']

将函数作为参数传递给高阶函数

def testfunc(num):
    return lambda x : x * num

result1 = testfunc(10)
result2 = testfunc(20)

print(result1(9))
pritn(result2(9))

标签:输出,函数,python,numbers,print,lambda,高阶,14
From: https://www.cnblogs.com/tian777/p/17509390.html

相关文章

  • Python书单,不将就
    经常有小伙伴询问Python的书,哎呀,动力所致,书单来了。9本,涵盖范围蛮大的。Python热持续中,入门计算机首选语言。。。1、《父与子的编程之旅》作者:WarrenSandeCarterSande译者:苏金国易郑超书号:978-7-115-36717-4定价:69.00元开本:16页数:452推荐指数:★★★★★推荐理由:......
  • 图灵Python图书一览表
    {编程入门}1、Python编程:从入门到实践[NEW!]同时使用Python2.X和3.X讲解2、Python基础教程(第2版·修订版)[HOT!]Python2.53、Python语言及其应用[HOT!]Python3.X4、Python编程入门(第3版)Python3.X5、父与子的编程之旅:与小卡特一起学Python[HOT!]Python2.X6、编程导论(Python......
  • Python是一门杰出的语言,值得你去学习
    为什么要将Python作为第一门语言来学习呢,理由有很多,就像《Python编程:从入门到实践》中说的。Python是一种效率极高的语言:相比于众多其他的语言,使用Python编写时,程序包含的代码行更少。Python的语法也有助于创建整洁的代码:相比其他语言,使用Python编写的代码更容易阅读、调试和扩展。......
  • 由Python历史「解密」Python底层逻辑
    一次纯粹的hackingPython的作者,GuidovonRossum,荷兰人。1982年,Guido从阿姆斯特丹大学获得了数学和计算机硕士学位。尽管,他算得上是一位数学家,但他更加享受计算机带来的乐趣,热衷于做任何和编程相关的活儿。80年代,掀起了个人电脑浪潮,但受限于个人电脑配置低,所有的编译器的核心是做优......
  • python基础33 继承、组合
    单继承下的查找循序单继承的意思是一个类只继承一个类classD():passclassC(D):passclassB(C):passclassA(B):pass如何查找继承下的属性和方法呢classFoo():def__f1(self):#_Foo__f1()print("Foo.f1")deff2(self):......
  • [SUCTF 2019]Pythonginx
    源码:@app.route('/getUrl',methods=['GET','POST'])defgetUrl():url=request.args.get("url")#获取urlhost=parse.urlparse(url).hostname#获取主机名例如:http://www.baidu.com/index.php?a=111会读取到www.baidu.com......
  • Python logging模块(转载)
    Pythonlogging模块日志级别CRITICAL=50#FATAL=CRITICALERROR=40WARNING=30#WARN=WARNINGINFO=20DEBUG=10NOTSET=0#不设置默认级别为warning,默认打印到终端importlogginglogging.debug('调试debug')logging.info('消息info')logging.warnin......
  • Python爬取用户所有博客
    CSDN的爬取比较简单,没有知乎那种反爬虫需要ip代理模拟登录那么麻烦。在确认一个用户之后,找到目录的url,再通过css选择器找到每一篇博客的url再分别保存为markdown格式。importrequestsimportparselimporttomdimportre先导入需要用到的包。第一次用到tomd,用于......
  • (Python编程)"添加Python,充分混和。"
    ProgrammingPython,3rdEdition翻译最新版本见:http://wiki.woodpecker.org.cn/moin/PP3eD23.1."AddPython.MixWell.Repeat."23.1."添加Python,充分混和。"Inthepriorchapter,weexploredhalfofthePython/Cintegration......
  • (Python编程)集成的方式
    ProgrammingPython,3rdEdition翻译最新版本见:http://wiki.woodpecker.org.cn/moin/PP3eD22.2.IntegrationModes22.2.集成的方式ThelasttwotechnicalchaptersofthisbookintroducePython'stoolsforinterfacingtotheoutsideworldanddiscussbothit......