文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python的函数和方法(中)

2024-04-02 19:55

关注

匿名函数

1.什么是匿名函数

lambda是个匿名函数,也是一个表达式,是函数的最小作战单元

匿名函数顾名思义,就是“无名”函数

匿名函数适用于简单的业务逻辑

一行一个函数

通俗的说逻辑不复杂,不需要大规模批量调用的功能可使用匿名函数构建,匿名函数的书写特性决定其简易性

#lambda简约而不简单

注意lambda是 python的一个关键字,用于声明一个匿名函数

**匿名函数的难点不在于其构建本身,在于其组合使用的难度!

2.如何声明/调用一个匿名函数(lambda)


#传统函数:
def add(num1):
	return num1 * 2
调用:add(2)
输出:4
def add(num1,num2):
	return num1 + num2
调用:add(1,2)
输出:3
#匿名函数:
result = lambda x: x*2
调用:result(2)
输出:4 
result = lambda x,y: x+y
调用:result(x=1,y=2)
输出:3

3.匿名函数的几种使用方式


#1、匿名函数组合三目运算
传统函数
def compare(x,y):
	if x > y:
		return x
	else:
		return y
调用:compare(2,1)
输出:2
匿名函数
compare = lambda x,y: x if x > y else y
调用:compare(2,1)
输出:2

#2、把lambda作为一个方法传入传统函数
schools = ["Python基础",
		   "Python爬虫",
		   "Java编程",
		   "Java Web",
		   "Python数据分析"
]
def keyword_serch(keys,func):
	search_result= []
	for result in keys:
		if func(result):
			search_result.append(result)
	return search_result
condition = lambda x: True if "Python" in x else False
调用:keyword_serch(schools,condition)
输出: ["Python基础","Python爬虫","Python数据分析"]

#3、如何给def函数中的lambda传参数?
def main():
	return lambda x: True if x == 10 else False
			(如果x等于10返回真,否则为假)
调用:main()(10) 
	执行main函数,但是main不需要传参;
	第二个括弧则是为lambda传送的x的参数
输出:True

#4、把lambda作为一个方法传入传统函数
def income(basic,transport,phone):
	return lambda x: x+basic+transport+phone
调用:total = income(1000,2000,3000)
	 total(4000)
输出:10000
schools = ["Python基础",
		   "Python爬虫",
		   "Java编程",
		   "Java Web",
		   "Python数据分析"
]
def keyword_search(keys,func):
	search_result= []
	for key in keys:
		if func(key):
			search_result.append(key)
	return search_result
def search_condition(c):
	return lambda x: True if c in x else False
python = search_condition("Python")
调用:keyword_search(schools,python)
输出:["Python基础","Python爬虫","Python数据分析"]

4.匿名函数的组合使用

在这里插入图片描述

map函数

在这里插入图片描述

在这里插入图片描述

filter函数

在这里插入图片描述

在这里插入图片描述

reduce函数

在这里插入图片描述

在这里插入图片描述

sorted函数

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯