Python学习--Lambda使用

原创 2018年04月16日 11:30:41

这两天学习Python一些应用教程的时候,看到这种写法:


return series.apply(lambda x:((x - min_val) / scale) - 1.0)

lambda是什么东西?????没见过,于是search online,大致是说lambda是一个匿名函数,用于解决简单函数的命名问题,通俗一点说,比如你在程序中想写这样一个函数

def a(x):
    x = x + 1
    return x
print(a(2))

那么如果你像上面那样写的话是不是觉得太蠢了?哦不,是太多余了,你还得为这个函数起一个名字以便于日后阅读,如果有一种方法不用这样定义函数,而且只用一行就搞定,是不是很爽?这就是Lambda的作用啦,尝试下面的写法:

a = lambda x: x + 1
print(a(2)) 

代码看起来是不是简洁了不少?或许这个例子并不能说明lambda的便利之处,但现在再回过头来看看最上面的那个例子,如果你写了一个函数

def a(x):
    x = (x - min_val) / scale) - 1.0
    return x 

而这个函数在整个程序中仅仅在这里使用了一次,那是不是很多余?而对比最上面的那种写法,lambda的便利指出一目了然。下面具体解释一下,lambda后面的x是作为函数参数,就是我们常说的形参,冒号后面跟函数实体,单独使用lambda函数时只能传入单个参数,也就是只能对一个数进行运算,而运用map()函数也可以将lambda函数应用在列表中:

foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
reslut = map(lambda x: x+1, foo )
print(list(reslut))

help(map)的结果如下


制作一个迭代器,使用来自每个迭代器的参数计算函数。 当最短的迭代器耗尽时停止。(google翻译)

map()函数产生一个迭代器,用来迭代列表中的每个元素,将lambda函数应用到每个元素上,list()函数将迭代器的返回值转换成列表输出。


Python入门新手,第一次写博客,欢迎大神指教......................................

lambda 与def 的区别&lambda 学习

一:lambda表达式 lambda的一般形式是关键字lambda,之后是一个或多个参数(与一个def头部内用括号括起来的参数列表及其相似),紧跟的是一个冒号,之后是一个表达式:lambda argu...
  • u012513525
  • u012513525
  • 2017-04-02 18:08:23
  • 1334

【Python学习笔记】函数式编程:匿名函数lambda

【根据廖雪峰python教程整理】 当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。   在Python中,对匿名函数提供了有限支持。还是以map()函数...
  • Junkichan
  • Junkichan
  • 2016-07-10 21:25:11
  • 1207

Python中filter与lambda的结合使用

filter是Python的内置方法。官方定义是:filter(function or None, sequence) -> list, tuple, or string Return those i...
  • zjuxsl
  • zjuxsl
  • 2017-08-11 23:04:56
  • 717

[Python]中filter、map、reduce、lambda的用法

Python中内置了一些非常方便的函数,可以节约我们的开发时间和提高程序的效率。filter、map、reduce的用法filter用法filter(function, sequence):对sequ...
  • humanking7
  • humanking7
  • 2015-05-24 14:11:32
  • 1335

python——用lambda函数替换for循环

场景如下: 现在有一个dataframe,其中一列为score,值从0-100, df: score 98 88 37 68 86 33 现在需要增加一列level,给这些分数分类,90分以上为A,6...
  • chenKFKevin
  • chenKFKevin
  • 2017-05-02 19:28:24
  • 4761

Python中lambda匿名函数的使用

python lambda是在python中使用lambda来创建匿名函数,而用def创建的方法是有名称的,除了从表面上的方法名不一样外,python lambda还有哪些和def不一样呢?1 pyt...
  • Winterto1990
  • Winterto1990
  • 2015-08-17 21:20:20
  • 1448

如何在AS中使用lambda表达式

要在AS中使用lambda表达式必须先确保jdk的版本在8以上 然后再module:app中的build.gradle中的android结点中加上 compileOptions { sourc...
  • draven1122
  • draven1122
  • 2016-01-09 10:40:07
  • 287

python中lambda的用法

一、lambda函数也叫匿名函数,即,函数没有具体的名称。先来看一个最简单例子: def f(x): return x**2 print f(4) Python中使用lambda的话,...
  • yezonggang
  • yezonggang
  • 2016-03-25 11:25:18
  • 21986

Python中reduce与lambda的结合使用

reduce是Python的内置方法,其官方解释是:reduce(function, sequence[, initial]) -> valueApply a function of two argu...
  • zjuxsl
  • zjuxsl
  • 2017-08-11 23:40:14
  • 418

当Python的lambda表达式遇上变量作用域

----------相关阅读----------1900页Python系列PPT分享一:基础知识(106页)1900页Python系列PPT分享二:Python序列(列表、元组、字典、集合)(154页...
  • oh5W6HinUg43JvRhhB
  • oh5W6HinUg43JvRhhB
  • 2018-02-20 00:00:00
  • 181
收藏助手
不良信息举报
您举报文章:Python学习--Lambda使用
举报原因:
原因补充:

(最多只允许输入30个字)