博客
关于我
高阶函数-语法糖-lambda(三分钟读懂)
阅读量:344 次
发布时间:2019-03-04

本文共 1343 字,大约阅读时间需要 4 分钟。

匿名函数 lambda 函数表达式

1.lambda函数表达式专门用来创建一些简单的函数,他是函数创建的又一种方式

2.语法:lambda 参数列表 : 返回值
3.匿名函数一般都是作为参数使用,其他地方一般不会使用

高阶函数

(符合一个即可)
① 接收一个或多个函数作为参数
② 将函数作为返回值返回

例一

语法:(lambda a,b : a + b)(参数)

def fn1(a,b):    return a + b    fn2 = lambda a,b : a + b # 语法:lambda 参数列表 : 返回值                # fn1 和fn2 的功能是一样的print(fn1)      # 执行返回为 
说明这是一个函数print(fn2) # 执行返回为
at 0x02CCF460> 说明这是一个函数 只是赋值给了fn2 显示的内存地址为fn2罢了print(lambda a,b : a + b) # 执行返回为
at 0x0160F418> 说明这是一个函数print(fn1(2,3)) # 执行返回为 5 print(fn2(2,3)) # 执行返回为 5 print((lambda a,b : a + b)(2,3)) # 执行返回为 5

例二:

在列表中筛选 filter(lambda x : x % 2 == 0,i)

在列表中做指定的操作 map(lambda i : i + 1 , x)

# 在列表中筛选i = [1,2,3,4,5,6,7,8,9,10]a = filter(lambda x : x % 2 == 0,i)#  一般不这么用  尽量少写代码 print(list(a))                  # 执行返回为 [2, 4, 6, 8, 10]# 在列表中做指定的操作x = [1,2,3,4,5,6,7,8,9,10]a = map(lambda i : i ** 3 , x)b = map(lambda i : i + 1 , x)print(list(a))# 执行返回为 [1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]print(list(b))# 执行返回为 [2, 3, 4, 5, 6, 7, 8, 9, 10, 11]print(a) # 执行返回为  #需要使用print() 才能查看print(b) # 执行返回为  #需要使用print() 才能查看# map()# map()函数可以对可跌倒对象中的所有元素做指定的操作,然后将其添加到一个新的对象中返回# filter()# filter()可以从序列中过滤出符合条件的元素,保存到一个新的序列中# 参数:(1.函数,根据该函数来过滤序列(可迭代的结构),2.需要过滤的序列(可迭代的结构))# 返回值:过滤后的新序列(可迭代的结构)

转载地址:http://tzke.baihongyu.com/

你可能感兴趣的文章
NetBeans IDE8.0需要JDK1.7及以上版本
查看>>
netbeans生成的maven工程没有web.xml文件 如何新建
查看>>
netcat的端口转发功能的实现
查看>>
netfilter应用场景
查看>>
netlink2.6.32内核实现源码
查看>>
Netpas:不一样的SD-WAN+ 保障网络通讯品质
查看>>
NetScaler的常用配置
查看>>
netsh advfirewall
查看>>
NETSH WINSOCK RESET这条命令的含义和作用?
查看>>
Netstat端口占用情况
查看>>
Netty WebSocket客户端
查看>>
netty 主要组件+黏包半包+rpc框架+源码透析
查看>>
Netty 异步任务调度与异步线程池
查看>>
Netty中集成Protobuf实现Java对象数据传递
查看>>
netty之 定长数据流处理数据粘包问题
查看>>
Netty事件注册机制深入解析
查看>>
Netty原理分析及实战(四)-客户端与服务端双向通信
查看>>
Netty和Tomcat的区别已经性能对比
查看>>
Netty学习总结(5)——Netty之TCP粘包/拆包问题的解决之道
查看>>
Netty客户端断线重连实现及问题思考
查看>>