Python学习笔记之lambda表达式用法详解

本文实例讲述了Python学习笔记之lambda表达式用法。分享给大家供大家参考,具体如下:

Lambda 表达式

使用 Lambda 表达式创建匿名函数,即没有名称的函数。lambda 表达式非常适合快速创建在代码中以后不会用到的函数。

麻烦的写法:

def multiply(x, y):
  return x * y

使用Lambda之后:

double = lambda x, y: x * y

Lambda 函数的组成部分:

  • 关键字 lambda 表示这是一个 lambda 表达式。
  • lambda 之后是该匿名函数的一个或多个参数(用英文逗号分隔),然后是一个英文冒号 :。和函数相似,lambda 表达式中的参数名称是随意的。
  • 最后一部分是被评估并在该函数中返回的表达式,和你可能会在函数中看到的 return 语句很像。
  • 备注:鉴于这种结构,lambda 表达式不太适合复杂的函数,但是非常适合简短的函数。

Lambda 表达式[相关练习]

map() 是一个高阶内置函数,接受函数和可迭代对象作为输入,并返回一个将该函数应用到可迭代对象的每个元素的迭代器。下面的代码使用 map() 计算 numbers 中每个列表的均值,并创建列表 averages, 通过将 mean 函数替换为在 map() 的调用中定义的 lambda 表达式,重写这段代码,使代码更简练。

numbers = [
        [34, 63, 88, 71, 29],
        [90, 78, 51, 27, 45],
        [63, 37, 85, 46, 22],
        [51, 22, 34, 11, 18]
      ]
def mean(num_list):
  return sum(num_list) / len(num_list)
averages = list(map(mean, numbers))
print(averages)

使用lambda重写后:

numbers = [
        [34, 63, 88, 71, 29],
        [90, 78, 51, 27, 45],
        [63, 37, 85, 46, 22],
        [51, 22, 34, 11, 18]
      ]
averages = list(map(lambda x: sum(x) / len(x), numbers))
print(averages) # [57.0, 58.2, 50.6, 27.2]

filter() 是一个高阶内置函数,接受函数和可迭代对象作为输入,并返回一个由可迭代对象中的特定元素(该函数针对该元素会返回 True)组成的迭代器。下面的代码使用 filter() 从 cities 中获取长度少于 10 个字符的名称以创建列表 short_cities。通过将 is_short 函数替换为在 filter() 的调用中定义的 lambda 表达式,重写这段代码,使代码更简练。

cities = ["New York City", "Los Angeles", "Chicago", "Mountain View", "Denver", "Boston"]
def is_short(name):
  return len(name) < 10
short_cities = list(filter(is_short, cities))
print(short_cities)

使用lambda重写后:

cities = ["New York City", "Los Angeles", "Chicago", "Mountain View", "Denver", "Boston"]
short_cities = list(filter(lambda n: len(n) < 10, cities))
print(short_cities) # ['Chicago', 'Denver', 'Boston']

关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

(0)

相关推荐

  • Python lambda表达式用法实例分析

    本文实例讲述了Python lambda表达式用法.分享给大家供大家参考,具体如下: lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数. lambda所表示的匿名函数的内容应该是很简单的,如果复杂的话,干脆就重新定义一个函数了,使用lambda就有点过于执拗了. lambda就是用来定义一个匿名函数的,如果还要给他绑定一个名字的话,就会显得有点画蛇添足,通常是直接使用lambda函数.如下所示: add = lambda x, y : x+y

  • Python的几个高级语法概念浅析(lambda表达式闭包装饰器)

    1. 匿名函数 匿名函数(anonymous function)是指未与任何标识符绑定的函数,多用在functional programming languages领域,典型应用场合: 1) 作为参数传给高阶函数(higher-order function ),如python中的built-in函数filter/map/reduce都是典型的高阶函数 2) 作为高阶函数的返回值(虽然此处的"值"实际上是个函数对象) 与命名函数(named function)相比,若函数只被调用1次或有

  • 浅析python的Lambda表达式

    在python项目中,我们经常会用到lambda,那么lambda是什么呢,有什么作用,下面我们开始介绍 1.可以使用lambda关键字创建匿名函数.Lambda函数可以在需要函数对象的任何地方使用.它们在语法上限于单个表达式.所谓匿名就是无名. 例如定义两个书加法: myplus=lambda a,b:a+bprint myplus(4,2) 输出: 6 2.再比如我们求两个数的乘积 mysubs=lambda a,b:a*bprint(mysubs(9,9)) 输入两个数,输出第一个数 my

  • python基础教程之lambda表达式使用方法

    Python中,如果函数体是一个单独的return expression语句,开发者可以选择使用特殊的lambda表达式形式替换该函数: 复制代码 代码如下: lambda parameters: expression lambda表达式相当于函数体为单个return语句的普通函数的匿名函数.请注意,lambda语法并没有使用return关键字.开发者可以在任何可以使用函数引用的位置使用lambda表达式.在开发者想要使用一个简单函数作为参数或者返回值时,使用lambda表达式是很方便的.下面是

  • Python3中lambda表达式与函数式编程讲解

    简单来说,编程中提到的 lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数.其一般有如下几种使用方式: 1.lambda的一般形式是关键字lambda后面跟一个或多个参数,紧跟一个冒号,以后是一个表达式.lambda是一个表达式而不是一个语句.它能够出现在Python语法不允许def出现的地方.作为表达式,lambda返回一个值(即一个新的函数).lambda用来编写简单的函数,而def用来处理更强大的任务.例如: f = lambda x,y

  • 深入解析Python中的lambda表达式的用法

    普通的数学运算用这个纯抽象的符号演算来定义,计算结果只能在脑子里存在.所以写了点代码,来验证文章中介绍的演算规则. 我们来验证文章里介绍的自然数及自然数运算规则.说到自然数,今天还百度了一下,据度娘说,1993年后国家规定0是属于自然数.先定义自然数及自然数的运算规则: 用lambda表达式定义自然数(邱齐数) 0 := λf.λx.x 1 := λf.λx.f x 2 := λf.λx.f (f x) 3 := λf.λx.f (f (f x)) ... 上面定义直观的意思就是数字n, 是f(

  • 简单谈谈python中的lambda表达式

    最近在coding时发现使用lambda还是有诸多优点的,很多时候代码更整洁,更pythonic,所以在此简单总结一下 1.lambda是什么 举个简单的例子: func = lambda x: x*x def func(x): return x*x 两个func的定义是完全相同的,那两种函数定义方法配合map使用,将list中所有元素求平方,代码会是什么样的, def func(x): return x*x map(func, [i for i in range(10)]) map(lambd

  • Python使用lambda表达式对字典排序操作示例

    本文实例讲述了Python使用lambda表达式对字典排序操作.分享给大家供大家参考,具体如下: lambda表达式也常用于字典排序,既然写到字典排序,那就把按键排序和按值排序都写写好了. 字典按键排序 显然按键排序,需要用字典中每个元素的第一项排序 dict = {'a':1,'b':2,'c':3,'d':4,'e':3,'f':1,'g':7} sorted_dict_asc = sorted(dict.items(),key=lambda item:item[0]) sorted_dic

  • Python中defaultdict与lambda表达式用法实例小结

    本文实例讲述了Python中defaultdict与lambda表达式用法.分享给大家供大家参考,具体如下: 从教程中看到defaultdict是一个类,在一台装有Python2.7.6的电脑上使用发现不存在.在文档中搜索了一下也没有找到,想当然以为这或许是Python 3.X专有的.因为教程就是基于Python 3.X实现的.后来换了一台装有Python 3.X的电脑依然出问题. 求助于网络,发现这个类其实是collections模块中的一个类.看来,学习很难摆脱网络环境啊! 这个类是dict

  • Python的条件表达式和lambda表达式实例

    条件表达式 条件表达式也称为三元表达式,表达式的形式:x if C else y.流程是:如果C为真,那么执行x,否则执行y. 经过测试x,y,C可以是函数,表达式,常量等等: def put(): print('this is put()') def get(): print('this is get()') def post(): return 0 method = put if post() else get method() lambda表达式 lambda [arguments] :

  • python中的lambda表达式用法详解

    本文实例讲述了python中的lambda表达式用法.分享给大家供大家参考,具体如下: 这里来为大家介绍一下lambda函数. lambda 函数是一种快速定义单行的最小函数,是从 Lisp 借用来的,可以用在任何需要函数的地方 .下面的例子比较了传统的函数定义def与lambda定义方式: >>> def f ( x ,y): ... return x * y ... >>> f ( 2,3 ) 6 >>> g = lambda x ,y: x *

  • Python中 Lambda表达式全面解析

    什么是Lambda表达式 "Lambda 表达式"(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数.Lambda表达式可以表示闭包(注意和数学传统意义上的不同). Lambda是一种匿名函数,当我们需要重复调用某一函数,又不想写那么多代码时可以使用lambda表达式来代替. lambda的通用格式: lambda argument:

随机推荐

其他