这篇教程python的函数和方法(中)写得很实用,希望能帮到您。
匿名函数
1.什么是匿名函数
lambda是个匿名函数,也是一个表达式,是函数的最小作战单元
匿名函数顾名思义,就是“无名”函数
匿名函数适用于简单的业务逻辑
一行一个函数
通俗的说逻辑不复杂,不需要大规模批量调用的功能可使用匿名函数构建,匿名函数的书写特性决定其简易性
#lambda简约而不简单
注意lambda是 python的一个关键字,用于声明一个匿名函数
**匿名函数的难点不在于其构建本身,在于其组合使用的难度!
2.如何声明/调用一个匿名函数(lambda)#传统函数:def add(num1): return num1 * 2调用:add(2)输出:4def 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_resultcondition = 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)输出:10000schools = ["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_resultdef search_condition(c): return lambda x: True if c in x else Falsepython = search_condition("Python")调用:keyword_search(schools,python)输出:["Python基础","Python爬虫","Python数据分析"]
4.匿名函数的组合使用

map函数


filter函数


reduce函数


sorted函数



总结本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注51zixue.net的更多内容! python的多元数据类型(上) python爬虫框架Scrapy基本应用学习教程 |