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

Python中,如果函数体是一个单独的return expression语句,开发者可以选择使用特殊的lambda表达式形式替换该函数:

复制代码 代码如下:

lambda parameters: expression

lambda表达式相当于函数体为单个return语句的普通函数的匿名函数。请注意,lambda语法并没有使用return关键字。开发者可以在任何可以使用函数引用的位置使用lambda表达式。在开发者想要使用一个简单函数作为参数或者返回值时,使用lambda表达式是很方便的。下面是使用lambda表达式作为内置filter函数的一个参数的示例:

复制代码 代码如下:

aList = [1, 2, 3, 4, 5, 6, 7, 8, 9]
low = 3
high = 7
filter(lambda x, l=low, h=high: h>x>l, aList) # returns: [4, 5, 6]

作为另外一种选择,开发者还可以使用一个可以为函数变量命名的本地def语句。然后,开发者可以使用这个名称作为参数或返回值。下面是使用本地def语句的相同filter示例:

复制代码 代码如下:

aList = [1, 2, 3, 4, 5, 6, 7, 8, 9]
low = 3
high = 7
def within_bounds(value, l=low, h=high):
return h>value>l filter(within_bounds, aList) #
returns: [4, 5, 6]

因为lambda表达式只是偶尔有用,许多Python用户更喜欢使用def, def要更通用些,如果开发者为函数选择了一个比较合理的名称,会让代码具有更好的可读性。

时间: 2014-02-10

简单介绍Python中的filter和lambda函数的使用

filter(function or None, sequence),其中sequence 可以是list ,tuple,string.这个函数的功能是过滤出sequence 中所有以元素自身作... filter(function or None, sequence),其中sequence 可以是list ,tuple,string.这个函数的功能是过滤出sequence 中所有以元素自身作为参数调用function时返回True或bool(返回值)为True的元素并以列表返回. filter

python基础教程之匿名函数lambda

 python lambda 当我们在使用函数时,有时候,并不需要显示的定义一个函数,我们可以使用匿名函数更加方便,在Python中对匿名函数也提供了支持. 比如当我们想计算两个数a,b之和时,即f(a,b) = a + b.我们可以有两种方法完成,第一种就是显示的定义一个函数f(x,y),然后将参数传进去得到结果.第二种方式就是使用匿名函数了. f = lambda x,y:x+y >>>f(1,2) 3 匿名函数lambda x,y:x+y实际上就是: def f(x, y): re

在Python中使用lambda高效操作列表的教程

介绍 lambda Python用于支持将函数赋值给变量的一个操作符 默认是返回的,所以不用再加return关键字,不然会报错 result = lambda x: x * x result(2) # return 4 map()/filter()/reduce() 需要两个参数,第一个是一个处理函数,第二个是一个序列(list,tuple,dict) map() 将序列中的元素通过处理函数处理后返回一个新的列表 filter() 将序列中的元素通过函数过滤后返回一个新的列表 reduce()

python中lambda函数 list comprehension 和 zip函数使用指南

lambda 函数 Python 支持一种有趣的语法,它允许你快速定义单行的最小函数.这些叫做 lambda 的函数,是从 Lisp 借用来的,可以用在任何需要函数的地方. def f(x): return x*2,用lambda函数来替换可以写成:g = lambda x: x*2`g(3)结果是6.(lambda x: x*2)(3)`也是同样的效果. 这是一个 lambda 函数,完成同上面普通函数相同的事情.注意这里的简短的语法:在参数列表周围没有括号,而且忽略了 return 关键字

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表达式的用法

普通的数学运算用这个纯抽象的符号演算来定义,计算结果只能在脑子里存在.所以写了点代码,来验证文章中介绍的演算规则. 我们来验证文章里介绍的自然数及自然数运算规则.说到自然数,今天还百度了一下,据度娘说,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和Python def区别分析

Python支持一种有趣的语法,它允许你快速定义单行的最小函数.这些叫做lambda的函数,是从Lisp借用来的,可以用在任何需要函数的地方. lambda的语法时常会使人感到困惑,lambda是什么,为什么要使用lambda,是不是必须使用lambda? >>> def f(x): ... return x+2 ... >>> f(1) 3 >>> f = lambda x:x+2 >>> f(1) 3 >>> (

Python的lambda匿名函数的简单介绍

lambda函数也叫匿名函数,即,函数没有具体的名称.先来看一个最简单例子: 复制代码 代码如下: def f(x):return x**2print f(4) Python中使用lambda的话,写成这样 复制代码 代码如下: g = lambda x : x**2print g(4) lambda表达式在很多编程语言都有对应的实现.比如C#: 复制代码 代码如下: var g = x => x**2Console.WriteLine(g(4)) 那么,lambda表达式有什么用处呢?很多人提

python中lambda与def用法对比实例分析

本文实例对比分析了python中lambda与def的用法.分享给大家供大家参考.具体分析如下: 1.lambda用来创建匿名函数,不同于def(def创建的函数都是有名字的). 2.lambda不会将结果赋给一个标识符,而def会将函数结果赋给一个标识符. 3.lambda是一个表达式,而def是一个语句 示例程序: >>> f1 = lambda x,y,z: x*2+y+z # lambda带有多个参数 >>> print f1(3,2,1) 9 >>

Python中lambda的用法及其与def的区别解析

python中的lambda通常是用来在python中创建匿名函数的,而用def创建的方法是有名称的,除了从表面上的方法名不一样外,python中的lambda还有如下几点和def不一样: 1. python lambda会创建一个函数对象,但不会把这个函数对象赋给一个标识符,而def则会把函数对象赋值给一个变量. 2. python lambda它只是一个表达式,而def则是一个语句. 下面是python lambda的格式,看起来非常精简. lambda x: print x 如果你在pyt

python中lambda()的用法

在C++11和C#中都有匿名函数的存在.下面看看在python中匿名函数的使用. 1.lambda只是一个表达式,函数体比def简单很多. 2.lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda表达式中封装有限的逻辑进去. 3.lambda表达式是起到一个函数速写的作用.允许在代码内嵌入一个函数的定义. 例1.定义一个lambda表达式,求三个数的和 # -*- coding: UTF-8 -*- f = lambda x,y,z:x + y + z print f(1,2,

Python中max函数用法实例分析

本文实例讲述了Python中max函数用法.分享给大家供大家参考.具体如下: 这里max函数是Python内置的函数,不需要导入math模块 # 最简单的 max(1, 2) max('a', 'b') # 也可以对列表和元组使用 max([1,2]) max((1,2)) # 还可以指定comparator function max('ah', 'bf', key=lambda x: x[1]) def comparator(x): return x[1] max('ah', 'bf', ke

Python中itertools模块用法详解

本文实例讲述了Python中itertools模块用法,分享给大家供大家参考.具体分析如下: 一般来说,itertools模块包含创建有效迭代器的函数,可以用各种方式对数据进行循环操作,此模块中的所有函数返回的迭代器都可以与for循环语句以及其他包含迭代器(如生成器和生成器表达式)的函数联合使用. chain(iter1, iter2, ..., iterN): 给出一组迭代器(iter1, iter2, ..., iterN),此函数创建一个新迭代器来将所有的迭代器链接起来,返回的迭代器从it

Python的Lambda函数用法详解

在Python中有两种函数,一种是def定义的函数,另一种是lambda函数,也就是大家常说的匿名函数.今天我就和大家聊聊lambda函数,在Python编程中,大家习惯将其称为表达式. 1.为什么要用lambda函数? 先举一个例子:将一个列表里的每个元素都平方. 先用def来定义函数,代码如下 def sq(x): return x*x map(sq,[y for y in range(10)]) 再用lambda函数来编写代码 map(lambda x: x*x,[y for y in r

Python中itertools的用法详解

iterator 循环器(iterator)是对象的容器,包含有多个对象.通过调用循环器的next()方法 (next()方法,在Python 3.x中),循环器将依次返回一个对象.直到所有的对象遍历穷尽,循环器将举出StopIteration错误. 在for i in iterator结构中,循环器每次返回的对象将赋予给i,直到循环结束.使用iter()内置函数,我们可以将诸如表.字典等容器变为循环器.比如 for i in iter([2, 4, 5, 6]): print i 标准库中的i

python中Genarator函数用法分析

本文实例讲述了python中Genarator函数用法.分享给大家供大家参考.具体如下: Generator函数的定义与普通函数的定义没有什么区别,只是在函数体内使用yield生成数据项即可.Generator函数可以被for循环遍历,而且可以通过next()方法获得yield生成的数据项. def func(n): for i in range(n): yield i for i in func(3): print i r=func(3) print r.next() print r.next

python中urllib模块用法实例详解

本文实例讲述了python中urllib模块用法.分享给大家供大家参考.具体分析如下: 一.问题: 近期公司项目的需求是根据客户提供的api,我们定时去获取数据, 之前的方案是用php收集任务存入到redis队列,然后在linux下做一个常驻进程跑某一个php文件, 该php文件就一个无限循环,判断redis队列,有就执行,没有就break. 二.解决方法: 最近刚好学了一下python, python的urllib模块或许比php的curl更快,而且简单. 贴一下代码 复制代码 代码如下: #

Python中Class类用法实例分析

本文实例讲述了Python中Class类用法.分享给大家供大家参考,具体如下: 尽管Python在Function Programming中有着其他语言难以企及的的优势,但是我们也不要忘了Python也是一门OO语言哦.因此我们关注Python在FP上的优势的同时,还得了解一下Python在OO方面的特性. 要讨论Python的OO特性,了解Python中的Class自然是首当其冲了.在Python中定义class和创建对象实例都很简单,具体代码如下: class GrandPa: def __