本文实例讲述了Python lambda表达式用法。分享给大家供大家参考,具体如下:
lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。
lambda所表示的匿名函数的内容应该是很简单的,如果复杂的话,干脆就重新定义一个函数了,使用lambda就有点过于执拗了。
lambda就是用来定义一个匿名函数的,如果还要给他绑定一个名字的话,就会显得有点画蛇添足,通常是直接使用lambda函数。如下所示:
add = lambda x, y : x+y add(1,2) # 结果为3
那么到底要如何使用lambda表达式呢?
1、应用在函数式编程中
Python提供了很多函数式编程的特性,如:map、reduce、filter、sorted等这些函数都支持函数作为参数,lambda函数就可以应用在函数式编程中。如下:
# 需求:将列表中的元素按照绝对值大小进行升序排列 list1 = [3,5,-4,-1,0,-2,-6] sorted(list1, key=lambda x: abs(x))
运行结果:
[0, -1, -2, 3, -4, 5, -6]
当然,也可以如下:
list1 = [3,5,-4,-1,0,-2,-6] def get_abs(x): return abs(x) sorted(list1,key=get_abs)
只不过这种方式的代码看起来不够Pythonic
2、应用在闭包中
def get_y(a,b): return lambda x:ax+b y1 = get_y(1,1) y1(1) # 结果为2
当然,也可以用常规函数实现闭包,如下:
def get_y(a,b): def func(x): return ax+b return func y1 = get_y(1,1) y1(1) # 结果为2
只不过这种方式显得有点啰嗦。
那么是不是任何情况下lambda函数都要比常规函数更清晰明了呢?
肯定不是。
Python之禅中有这么一句话:Explicit is better than implicit(明了胜于晦涩),就是说那种方式更清晰就用哪一种方式,不要盲目的都使用lambda表达式。
更多关于Python相关内容可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
本文向大家介绍C#正则表达式Regex类用法实例分析,包括了C#正则表达式Regex类用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#正则表达式Regex类用法,分享给大家供大家参考。具体实现方法如下: 一、在C#中,要使用正则表达式类,请在源文件开头处添加以下语句: 二、RegEx类常用的方法 1、静态Match方法 使用静态Match方法,可以得到源中第一个匹配模式的连
本文向大家介绍PHP正则表达式函数preg_replace用法实例分析,包括了PHP正则表达式函数preg_replace用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP正则表达式函数preg_replace用法。分享给大家供大家参考,具体如下: preg_replace 执行一个正则表达式的搜索和替换 语法:preg_replace (pattern ,replacem
本文向大家介绍Python爬虫之正则表达式基本用法实例分析,包括了Python爬虫之正则表达式基本用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python爬虫之正则表达式基本用法。分享给大家供大家参考,具体如下: 一、简介 正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、re
本文向大家介绍javascript正则表达式之分组概念与用法实例,包括了javascript正则表达式之分组概念与用法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript正则表达式之分组概念与用法。分享给大家供大家参考,具体如下: 更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript切换特效与技巧总结》、《JavaScript查找算法技
本文向大家介绍正则表达式教程之子表达式用法分析,包括了正则表达式教程之子表达式用法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了正则表达式教程之子表达式用法。分享给大家供大家参考,具体如下: 注:在所有例子中正则表达式匹配结果包含在源文本中的【和】之间,有的例子会使用java来实现,如果是java本身正则表达式的用法,会在相应的地方说明。所有java例子都在JDK1.6.0_13下测
本文向大家介绍js正则表达式中exec用法实例,包括了js正则表达式中exec用法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js正则表达式中exec用法。分享给大家供大家参考。具体如下: exec要注意以下几点: 1. exec返回的是一个数组 2. 该数组的属性有input(被匹配的整个字符串) index(匹配到第一个元素的开始位置) 3. lastIndex还有个匹配到第一