在python中lambda表达式可以作为匿名函数来使用,举一个简单的栗子:

  以前我们写两个数相加的函数需要

#以前我们写两个数相加的函数,需要这样写
>>> def sum(x,y):
return x+y >>> sum(1,2)
3
>>> #而学了lambda之后我们再写这个函数可以这么写
>>> x=lambda x,y:x+y
>>> x(1,2)
3
>>>

  python对我们以后的编程的意义,使用Python写一些脚本的时候,使用匿名函数就可以省下定义函数的过程,比如我们只写一个简单的脚本来管理服务器时间,我们就不需要专门定义一个函数,然后再写一个调用,使用匿名函数就可以使代码变得更加精简。

  对于一些比较抽象的并且整个程序执行下来只需要调用一两次,有时候给函数起名称也是很头疼的事情,使用匿名函数就不需要再考虑这个问题。

  简化代码的可读性,普通函数经常会跳到开头的def定义部分,使用匿名函数可以省去这个步骤。

  再练习几个玩玩

'''
def fun_A(x,y=3)
return x*y
把这个方法用lambda表达式写
'''
fun_A = lambda x,y=3:x*y print(fun_A(2))
print(fun_A(2,6))
'''
lambda x:x if x%2 else None
变为函数
'''
def odd(x):
if x%2:
return x
else:
return None print(odd(9))

  filter,过滤器,可以帮我们过滤掉一些我们不想要的东西

'''
利用filter和lambda表达式快速求出100以内的3的倍数
''' fun_B = filter(lambda x:not(x%3),range(0,100))
print(list(fun_B))
'''
使用zip可以将两个数组以元组方式绑定到一起
list(zip([1,2,3,4,5],[6,7,8,9,10]))
[(1,6),(2,7),(3,8),(4,9),(5,10)]
'''
print(list(map(lambda x,y:[x,y],(1,2,3,4,5),(6,7,8,9,10))))
def make_repeat(n):
return lambda x:x*n
#闭包函数,下面这种调用相当于给n赋值了 2
double = make_repeat(2) #调用闭包,并且给闭包中的x赋值8 print(double(8)) print(double('i love you '))

结果为:

6
12
------------------------------
9
------------------------------
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
------------------------------
[[1, 6], [2, 7], [3, 8], [4, 9], [5, 10]]
----------------
16
i love you i love you
>>>

python第l六天,lambda表达式学习,涉及filter及Map。的更多相关文章

  1. java lambda表达式学习笔记

    lambda是函数式编程(FP,functional program),在java8中引入,而C#很早之前就有了.在java中lambda表达式是'->',在C#中是‘=>’. 杜甫说:射 ...

  2. C# Lambda 表达式学习之(三):动态构建类似于 c => c.Age == null || c.Age > 18 的表达式

    可能你还感兴趣: 1. C# Lambda 表达式学习之(一):得到一个类的字段(Field)或属性(Property)名,强类型得到 2. C# Lambda 表达式学习之(二):LambdaExp ...

  3. C# Lambda 表达式学习之(四):动态构建类似于 c => c.Age == 2 || c.Age == 5 || c => c.Age == 17 等等一个或多个 OrElse 的表达式

    可能你还感兴趣: 1. C# Lambda 表达式学习之(一):得到一个类的字段(Field)或属性(Property)名,强类型得到 2. C# Lambda 表达式学习之(二):LambdaExp ...

  4. Python函数式编程之lambda表达式

    一:匿名函数的定义 lambda parameter_list: expression 二:三元表达式 条件为真时返回的结果 if 条件判断 else 条件为假的时候返回的结果 三:map map(f ...

  5. python函数和lambda表达式学习笔记

    1. python函数 不同于其他语言,python支持函数返回多个值 为函数提供说明文档:help(函数名)或者函数名.__doc__ def str_max(str1, str2): ''' 比较 ...

  6. Python中lambda表达式学习

    lambda只是一个表达式,函数体比def简单很多. lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda表达式中封装有限的逻辑进去. lambda表达式是起到一个函数速写的作用.允 ...

  7. Python函数式编程:Lambda表达式

    首先我们要明白在编程语言中,表达式和语句的区别. 表达式是一个由变量.常量.有返回值的函数加运算符组成的一个式子,该式子是有返回值的 ,如  a + 1 就是个表达式, 单独的一个常量.变量 或函数调 ...

  8. C# Lambda表达式学习笔记

    本笔记摘抄自:https://www.cnblogs.com/leslies2/archive/2012/03/22/2389318.html,记录一下学习过程以备后续查用.     一.Lambda ...

  9. java 8 中lambda表达式学习

    转自 http://blog.csdn.net/renfufei/article/details/24600507 http://www.jdon.com/idea/java/10-example-o ...

随机推荐

  1. 安装Redis 4.0单实例

    一.Redis简单介绍 转载于网络 Redis是一个开源(BSD许可)的内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件.由于Redis采用运行在内存中的数据集工作方式,其性能卓越,能支持 ...

  2. zTree基础

    zTree使用 zTree 是一个依靠 jQuery 实现的多功能 “树插件”, 而且拥有较好的浏览器兼容性,有着丰富的功能以及可以自定义样式,足以满足大部分业务的开发. 第一步先导入css及js文件 ...

  3. servlet模拟SpringMVC

    1. web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=&q ...

  4. struct sock注释

    针对 struct sock 的一些注释: struct sock { /* Socket demultiplex comparisons on incoming packets. */ __u32  ...

  5. SQL-数据库刷题

    因是个人总结,只列出对自己有用的或较难的: 下面这道题,第一次拿到,我尝试用 开窗函数 ROW_NUMBER()OVER() 编号,但是发现不能够处理好连续的问题, 上网查找了别人的解法记录下来,其实 ...

  6. Kettle 和数据建模的几个学习资料

    视频课程: 1. 初建军的   [慕课大巴分享]炼数成金——深入BI - Kettle 篇 基础书:1. Kettle 3.0 用户手册, 文件名为: ETL工具Kettle用户手册(上).pdf, ...

  7. 保存页面数据的场所----Hidden、ViewState、ControlState

    1.使用隐藏域Session.Application和Cache都是保存在服务器内存中的.一般来说我们是无权访问客户端的机器,把数据直接保存在客户端的(Cookie是一个例外,不过Cookie只能保存 ...

  8. 12.scrapy框架

    一.Scrapy 框架简介 1.简介 Scrapy是用纯Python实现一个为了爬取网站数据.提取结构性数据而编写的应用框架,用途非常广泛. 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个 ...

  9. Git 命令解释优秀博文转摘

    git rebase http://blog.csdn.net/hudashi/article/details/7664631 git merge git reset http://www.cnblo ...

  10. angularjs路由path方式实现原理探究

    angularjs路由 https://angular.io/guide/router 通过URL解释, 来定位客户端生成的浏览器端视图. 你可绑定路由到页面的链接上, 当用户点击链接, 可以浏览到相 ...